From 5e9b343d3e81b5baeb63ed7c9906cd38107d77f9 Mon Sep 17 00:00:00 2001 From: me Date: Tue, 15 Jul 2025 11:13:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MsgCheck/BillM100s/NewM100AppService.cs | 8 +- .../PaiGe/MsgTransmissionAppService.cs | 22 +- .../WY.NewJit.Application.xml | 10 +- .../src/WY.NewJit.DbMigrator/appsettings.json | 2 +- .../Entitys/DicItemDataSeederContributor.cs | 69 ++--- .../MsgBaseData/Services/DicDomainService.cs | 8 +- .../Services/CacheManagerDomainService.cs | 12 +- .../Services/M100CheckDomainService.cs | 254 +++++++++--------- .../Services/SyncAssemblyService.cs | 2 +- .../appsettings.json | 6 +- .../Messages/MsgTransmissionService.cs | 10 +- .../WY.NewJit.Job.ConsoleApp/appsettings.json | 8 +- .../Services/FileParse.cs | 6 +- .../appsettings.Development.json | 8 +- .../appsettings.json | 8 +- .../Messages/MsgTransmissionService.cs | 12 +- .../appsettings.json | 10 +- .../appsettings.json | 2 +- .../appsettings.json | 6 +- .../src/WY.NewJit.Web/appsettings.json | 8 +- .../static/js/chunk-5e9b71b5.b7142855.js | 2 +- .../static/js/chunk-62062bae.7d0067f4.js | 2 +- .../static/js/chunk-b83932fc.b52aee7c.js | 2 +- .../static/js/chunk-de0cc00c.ef5d3286.js | 2 +- .../bin/Debug/Win.Sfs.Shared.2.0.0.nupkg | Bin 32623 -> 32767 bytes .../bin/Debug/netcoreapp5/Win.Sfs.Shared.dll | Bin 73728 -> 73728 bytes .../bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb | Bin 48412 -> 48412 bytes .../bin/Debug/netcoreapp5/Win.Utils.dll | Bin 10752 -> 10752 bytes .../bin/Debug/netcoreapp5/Win.Utils.pdb | Bin 21748 -> 21748 bytes .../obj/Debug/Win.Sfs.Shared.2.0.0.nuspec | 2 +- .../Win.Sfs.Shared.AssemblyInfo.cs | 2 +- .../Win.Sfs.Shared.AssemblyInfoInputs.cache | 2 +- ....Sfs.Shared.csproj.AssemblyReference.cache | Bin 30894 -> 30894 bytes .../obj/Debug/netcoreapp5/Win.Sfs.Shared.dll | Bin 73728 -> 73728 bytes .../obj/Debug/netcoreapp5/Win.Sfs.Shared.pdb | Bin 48412 -> 48412 bytes .../Debug/netcoreapp5/ref/Win.Sfs.Shared.dll | Bin 42496 -> 42496 bytes .../netcoreapp5/refint/Win.Sfs.Shared.dll | Bin 42496 -> 42496 bytes .../Win.Utils/bin/Debug/Win.Utils.2.0.0.nupkg | Bin 6502 -> 6633 bytes .../bin/Debug/netcoreapp5/Win.Utils.dll | Bin 10752 -> 10752 bytes .../bin/Debug/netcoreapp5/Win.Utils.pdb | Bin 21748 -> 21748 bytes .../obj/Debug/Win.Utils.2.0.0.nuspec | 2 +- .../netcoreapp5/Win.Utils.AssemblyInfo.cs | 2 +- .../Win.Utils.AssemblyInfoInputs.cache | 2 +- .../Win.Utils.csproj.AssemblyReference.cache | Bin 6258 -> 6376 bytes .../obj/Debug/netcoreapp5/Win.Utils.dll | Bin 10752 -> 10752 bytes .../obj/Debug/netcoreapp5/Win.Utils.pdb | Bin 21748 -> 21748 bytes .../obj/Debug/netcoreapp5/ref/Win.Utils.dll | Bin 7168 -> 7168 bytes .../Debug/netcoreapp5/refint/Win.Utils.dll | Bin 7168 -> 7168 bytes 48 files changed, 246 insertions(+), 245 deletions(-) diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/NewM100AppService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/NewM100AppService.cs index 7f7a8ee..2c27e56 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/NewM100AppService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgCheck/BillM100s/NewM100AppService.cs @@ -77,12 +77,12 @@ namespace WY.NewJit.MsgCheck #region 缓存 /// - /// R100派格车型对应生产线 + /// R100格拉默车型对应生产线 /// private static List _r100VehicleModelProductLineList = new List(); /// - /// M100派格车型对应生产线 + /// M100格拉默车型对应生产线 /// private static List _m100VehicleModelProductLineList = new List(); #endregion @@ -469,7 +469,7 @@ select * from #region 生产线赋值 //根据车型取对应生产线 - _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); var obj3 = _m100VehicleModelProductLineList.FirstOrDefault(itm => itm.DicItemCode == bill.VehicleModelCode); if (obj3 != null) @@ -479,7 +479,7 @@ select * from } else { - string errorMsg = $"派格车型{bill.VehicleModelCode}没有对应的生产线:" + bill.VIN; + string errorMsg = $"格拉默车型{bill.VehicleModelCode}没有对应的生产线:" + bill.VIN; throw new Exception(errorMsg); } diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgTransmission/PaiGe/MsgTransmissionAppService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgTransmission/PaiGe/MsgTransmissionAppService.cs index f9bcde1..a087c7f 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgTransmission/PaiGe/MsgTransmissionAppService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/MsgTransmission/PaiGe/MsgTransmissionAppService.cs @@ -121,17 +121,17 @@ namespace WY.NewJit.MsgTransmission.PaiGe #region 缓存 /// - /// 报文车型对应派格车型 + /// 报文车型对应格拉默车型 /// private static List _msgToPaiGeVehicleModelList = new List(); /// - /// R100派格车型对应生产线 + /// R100格拉默车型对应生产线 /// private static List _r100VehicleModelProductLineList = new List(); /// - /// M100派格车型对应生产线 + /// M100格拉默车型对应生产线 /// private static List _m100VehicleModelProductLineList = new List(); @@ -366,9 +366,9 @@ namespace WY.NewJit.MsgTransmission.PaiGe //_r100CheckDomainSrv.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList); //_m100CheckDomainService.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList); - _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应派格车型); - _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100派格车型对应生产线); - _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应格拉默车型); + _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100格拉默车型对应生产线); + _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); //结算件切换列表 //string partSwitchSql = @"select SourcePartCode, TargetPartCode, ActiveBeginTime, ActiveEndTime from FisPartSwitch where ActiveBeginTime is null or ActiveBeginTime <= convert(datetime,'{0}')"; //partSwitchSql = string.Format(partSwitchSql, ServerHelper.CurrentDateTimeString); @@ -495,7 +495,7 @@ namespace WY.NewJit.MsgTransmission.PaiGe if (billResObj.R100Bill != null) { var bill = billResObj.R100Bill; - //报文车型转换为派格车型:3H 转 CC;FY 转 Q5 + //报文车型转换为格拉默车型:3H 转 CC;FY 转 Q5 var obj1 = _msgToPaiGeVehicleModelList.FirstOrDefault(itm => itm.DicItemCode == bill.VehicleModelCode); if (obj1 != null) { @@ -515,13 +515,13 @@ namespace WY.NewJit.MsgTransmission.PaiGe } else { - string errorMsg = $"派格车型{bill.VehicleModelCode}没有对应的生产线!"; + string errorMsg = $"格拉默车型{bill.VehicleModelCode}没有对应的生产线!"; throw new Exception(errorMsg); } } else { - string errorMsg = $"报文车型{bill.VehicleModelCode}没有对应的派格车型!"; + string errorMsg = $"报文车型{bill.VehicleModelCode}没有对应的格拉默车型!"; throw new Exception(errorMsg); } } @@ -548,13 +548,13 @@ namespace WY.NewJit.MsgTransmission.PaiGe } else { - string errorMsg = $"派格车型{bill.VehicleModelCode}没有对应的生产线!"; + string errorMsg = $"格拉默车型{bill.VehicleModelCode}没有对应的生产线!"; throw new Exception(errorMsg); } } else { - string errorMsg = $"报文车型{bill.VehicleModelCode}没有对应的派格车型!"; + string errorMsg = $"报文车型{bill.VehicleModelCode}没有对应的格拉默车型!"; throw new Exception(errorMsg); } } diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml index 1c2f780..5fe8c04 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Application/WY.NewJit.Application.xml @@ -1333,12 +1333,12 @@ - R100派格车型对应生产线 + R100格拉默车型对应生产线 - M100派格车型对应生产线 + M100格拉默车型对应生产线 @@ -1998,17 +1998,17 @@ - 报文车型对应派格车型 + 报文车型对应格拉默车型 - R100派格车型对应生产线 + R100格拉默车型对应生产线 - M100派格车型对应生产线 + M100格拉默车型对应生产线 diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.DbMigrator/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.DbMigrator/appsettings.json index 37417cb..751d913 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.DbMigrator/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.DbMigrator/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008" + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021" /*"Default": "Server=192.168.0.213;Database=NewJitPG;uid=sa;pwd=Microsoft@2021"*/ /*"Default": "Server=LAPTOP-4TE7UPMR\\MYSQLSERVER;Database=NewJit;uid=sa;pwd=1"*/ }, diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItemDataSeederContributor.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItemDataSeederContributor.cs index d63ac54..25c3894 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItemDataSeederContributor.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Entitys/DicItemDataSeederContributor.cs @@ -41,6 +41,7 @@ namespace WY.NewJit.MsgBaseData [UnitOfWork] public async Task SeedAsync(DataSeedContext context) { + return; if (string.IsNullOrEmpty(ConfigDic.CurrentVersion)) { ConfigDic.CurrentVersion = _configuration["ConfigDic:CurrentVersion"]; @@ -57,51 +58,51 @@ namespace WY.NewJit.MsgBaseData } await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.报文车型, DicTypeName.报文车型)); await _dicItemRepository.InsertManyAsync(dicItemLst); - //派格车型 + //格拉默车型 dicItemLst = new List(); arr = new string[] { "B8L", "B9", "BSMV", "C8", "CC", "Q5", "Q6" }; foreach (string itm in arr) { - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.派格车型, itm, itm)); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.格拉默车型, itm, itm)); } - await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.派格车型, DicTypeName.派格车型)); + await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.格拉默车型, DicTypeName.格拉默车型)); await _dicItemRepository.InsertManyAsync(dicItemLst); - //报文车型对应派格车型 + //报文车型对应格拉默车型 dicItemLst = new List(); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "0V", "BSMV")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "3C", "B8L")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "3C", "B8L-PHEV")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "3H", "CC")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "4K", "C8")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "4K", "C8-PHEV")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "8W", "B9")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "FY", "Q5")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, "GE", "Q6")); - await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.报文车型对应派格车型, DicTypeName.报文车型对应派格车型)); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "0V", "BSMV")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "3C", "B8L")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "3C", "B8L-PHEV")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "3H", "CC")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "4K", "C8")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "4K", "C8-PHEV")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "8W", "B9")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "FY", "Q5")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, "GE", "Q6")); + await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.报文车型对应格拉默车型, DicTypeName.报文车型对应格拉默车型)); await _dicItemRepository.InsertManyAsync(dicItemLst); - //M100派格车型对应生产线 + //M100格拉默车型对应生产线 dicItemLst = new List(); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "C8", "01")); - //dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "C8 - PHEV", "01")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "B8L", "05")); - //dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "B8L - PHEV", "05")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "BSMV", "05")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "CC", "05")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "B9", "07")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "Q6", "07")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, "Q5", "08")); - await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.M100派格车型对应生产线, DicTypeName.M100派格车型对应生产线)); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "C8", "01")); + //dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "C8 - PHEV", "01")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "B8L", "05")); + //dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "B8L - PHEV", "05")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "BSMV", "05")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "CC", "05")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "B9", "07")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "Q6", "07")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, "Q5", "08")); + await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.M100格拉默车型对应生产线, DicTypeName.M100格拉默车型对应生产线)); await _dicItemRepository.InsertManyAsync(dicItemLst); - //R100派格车型对应生产线 + //R100格拉默车型对应生产线 dicItemLst = new List(); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "Q5", "02")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "B9", "03")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "CC", "04")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "B8L", "04")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "C8", "05")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "Q6", "07")); - dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, "BSMV", "09")); - await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.R100派格车型对应生产线, DicTypeName.R100派格车型对应生产线)); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "Q5", "02")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "B9", "03")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "CC", "04")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "B8L", "04")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "C8", "05")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "Q6", "07")); + dicItemLst.Add(new DicItem(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, "BSMV", "09")); + await _dicTypeRepository.InsertAsync(new DicType(_guidGenerator.Create(), DicTypeName.R100格拉默车型对应生产线, DicTypeName.R100格拉默车型对应生产线)); await _dicItemRepository.InsertManyAsync(dicItemLst); ////M100生产线 //dicItemLst = new List(); diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/DicDomainService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/DicDomainService.cs index d54521f..3689855 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/DicDomainService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgBaseData/Services/DicDomainService.cs @@ -39,13 +39,13 @@ namespace WY.NewJit.MsgBaseData { public const string 报文车型 = "报文车型"; - public const string 派格车型 = "派格车型"; + public const string 格拉默车型 = "格拉默车型"; - public const string 报文车型对应派格车型 = "报文车型对应派格车型"; + public const string 报文车型对应格拉默车型 = "报文车型对应格拉默车型"; - public const string R100派格车型对应生产线 = "R100派格车型对应生产线"; + public const string R100格拉默车型对应生产线 = "R100格拉默车型对应生产线"; - public const string M100派格车型对应生产线 = "M100派格车型对应生产线"; + public const string M100格拉默车型对应生产线 = "M100格拉默车型对应生产线"; public const string R100生产线 = "R100生产线"; diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/CacheManagerDomainService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/CacheManagerDomainService.cs index 47f7f6d..a16ae05 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/CacheManagerDomainService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/CacheManagerDomainService.cs @@ -67,17 +67,17 @@ namespace WY.NewJit.MsgCheck public static List _partSwitchList = new List(); /// - /// 报文车型对应派格车型 + /// 报文车型对应格拉默车型 /// public static List _msgToPaiGeVehicleModelList = new List(); /// - /// R100派格车型对应生产线 + /// R100格拉默车型对应生产线 /// public static List _r100VehicleModelProductLineList = new List(); /// - /// M100派格车型对应生产线 + /// M100格拉默车型对应生产线 /// public static List _m100VehicleModelProductLineList = new List(); @@ -277,9 +277,9 @@ namespace WY.NewJit.MsgCheck _erp2partList = _newJitDapperRepository.GetListBySql(erp2partSql, true); } - _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应派格车型); - _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100派格车型对应生产线); - _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应格拉默车型); + _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100格拉默车型对应生产线); + _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); _logger.LogDebug("重新刷新报文解析缓存!"); } diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/M100CheckDomainService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/M100CheckDomainService.cs index 5247275..df2b246 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/M100CheckDomainService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Domain/MsgCheck/Services/M100CheckDomainService.cs @@ -695,13 +695,13 @@ namespace WY.NewJit.MsgCheck } else { - CompareErpAssemblyResult erpResult = CompareErpAssembly(m100Bill); - if (erpResult.IsMatch == true) - { - ret.ErpAssemblyResult = erpResult; - ret.VehicleModel = m100Bill.VehicleModelCode; - return ret; - } + //CompareErpAssemblyResult erpResult = CompareErpAssembly(m100Bill); + //if (erpResult.IsMatch == true) + //{ + // ret.ErpAssemblyResult = erpResult; + // ret.VehicleModel = m100Bill.VehicleModelCode; + // return ret; + //} } #endregion @@ -853,112 +853,112 @@ namespace WY.NewJit.MsgCheck /// /// /// 匹配的若干个Erp总成ID - private CompareErpAssemblyResult CompareErpAssembly(BillM100 m100Bill) - { - try - { - CompareErpAssemblyResult ret = new CompareErpAssemblyResult(); - - # region 单据零件转换成PartBase(排除柱护板) - List billPartBaseLst = new List(); - - List tempPartLst = m100Bill.BillM100Parts; - if (ConfigDic.CurrentVersion == ConfigDicVersionOption.派格) - { - tempPartLst = m100Bill.BillM100Parts.Where(itm => itm.PartType != "2").ToList(); //不等于柱护板 - } - //按PartCode分组汇总PartNum - var qry2 = from item in tempPartLst - group item by item.PartCode into g - select new - { - PartCode = g.Key, - PartNum = g.Sum(itm => itm.PartNum) - }; - foreach (var item in qry2) - { - PartBase gpObj = new PartBase(item.PartCode, item.PartNum); - billPartBaseLst.Add(gpObj); - } - #endregion - - #region 进一步过滤ERP总成 - //1.按车型过滤 - //2.遍历所有Erp总成中的结算件,判断是不是单据中结算件的子集? - List filterErpAssemblyIdLst = new List(); - List billPartCodeLst = billPartBaseLst.Select(itm => itm.PartCode).ToList(); - foreach (ErpAssemblyMain erpMainObj in _erpAssemblyMainList) - { - if (erpMainObj.VehicleModel.IsNullOrEmpty() || erpMainObj.VehicleModel == m100Bill.VehicleModelCode) //按车型过滤 或空 - { - List erpPartCodeLst = _erp2partList.Where(itm => itm.ErpAssemblyId == erpMainObj.Id).Select(itm => itm.PartCode).ToList(); - bool isSubset = !erpPartCodeLst.Except(billPartCodeLst).Any(); //是子集 - if (isSubset) - { - filterErpAssemblyIdLst.Add(erpMainObj.Id); - } - } - } - #endregion - - int cnt = this.ParseAssemblyCycleCount; - - _logger.LogDebug(_errorMessagePrefix + "_parseAssemblyCycleCount:" + cnt + ", filterErpAssemblyIdLst:" + filterErpAssemblyIdLst.Count()); - for (int i = cnt; i > 0; i--) - { - List combLst = PermutationAndCombination.GetCombination(filterErpAssemblyIdLst.ToArray(), i); //求全部的 n*n 组合 - if (combLst == null) - { - continue; - } - foreach (Guid[] combItm in combLst) - { - #region ERP总成转换成PartBase - List erpIdLst = combItm.ToList(); - //按PartCode分组汇总PartNum - var query = from item in _erp2partList - where erpIdLst.Contains(item.ErpAssemblyId) - group item by item.PartCode into g - select new - { - PartCode = g.Key, - PartNum = g.Sum(itm => itm.PartNum) - }; - List erpPartBaseLst = new List(); - foreach (var item in query) - { - PartBase tempObj = new PartBase(item.PartCode, item.PartNum); - erpPartBaseLst.Add(tempObj); - } - #endregion - - bool isSame = ServerHelper.CompareTwoCollection(billPartBaseLst, erpPartBaseLst); - if (isSame) //已匹配 - { - ret.ErpAssemblyIdList = erpIdLst; - //为了在调用方法中将整车总成添加到内存 - List vehicle2PartLst = new List(); - foreach (var groupItm in erpPartBaseLst) - { - AssemblyCfgVehicle2Part vehicle2PartObj = new AssemblyCfgVehicle2Part(); - vehicle2PartObj.PartCode = groupItm.PartCode; - vehicle2PartObj.PartNum = groupItm.PartNum; - vehicle2PartLst.Add(vehicle2PartObj); - } - ret.Vehicle2PartList = vehicle2PartLst; - ret.IsMatch = true; - return ret; - } - } - } - ret.IsMatch = false; - return ret; - } - catch (Exception ex) - { - throw new Exception($"-CompareErpAssembly子方法-{_billNumber}-" + ex.Message); - } - } + //private CompareErpAssemblyResult CompareErpAssembly(BillM100 m100Bill) + //{ + // try + // { + // CompareErpAssemblyResult ret = new CompareErpAssemblyResult(); + + // # region 单据零件转换成PartBase(排除柱护板) + // List billPartBaseLst = new List(); + + // List tempPartLst = m100Bill.BillM100Parts; + // if (ConfigDic.CurrentVersion == ConfigDicVersionOption.派格) + // { + // tempPartLst = m100Bill.BillM100Parts.Where(itm => itm.PartType != "2").ToList(); //不等于柱护板 + // } + // //按PartCode分组汇总PartNum + // var qry2 = from item in tempPartLst + // group item by item.PartCode into g + // select new + // { + // PartCode = g.Key, + // PartNum = g.Sum(itm => itm.PartNum) + // }; + // foreach (var item in qry2) + // { + // PartBase gpObj = new PartBase(item.PartCode, item.PartNum); + // billPartBaseLst.Add(gpObj); + // } + // #endregion + + // #region 进一步过滤ERP总成 + // //1.按车型过滤 + // //2.遍历所有Erp总成中的结算件,判断是不是单据中结算件的子集? + // List filterErpAssemblyIdLst = new List(); + // List billPartCodeLst = billPartBaseLst.Select(itm => itm.PartCode).ToList(); + // foreach (ErpAssemblyMain erpMainObj in _erpAssemblyMainList) + // { + // if (erpMainObj.VehicleModel.IsNullOrEmpty() || erpMainObj.VehicleModel == m100Bill.VehicleModelCode) //按车型过滤 或空 + // { + // List erpPartCodeLst = _erp2partList.Where(itm => itm.ErpAssemblyId == erpMainObj.Id).Select(itm => itm.PartCode).ToList(); + // bool isSubset = !erpPartCodeLst.Except(billPartCodeLst).Any(); //是子集 + // if (isSubset) + // { + // filterErpAssemblyIdLst.Add(erpMainObj.Id); + // } + // } + // } + // #endregion + + // int cnt = this.ParseAssemblyCycleCount; + + // _logger.LogDebug(_errorMessagePrefix + "_parseAssemblyCycleCount:" + cnt + ", filterErpAssemblyIdLst:" + filterErpAssemblyIdLst.Count()); + // for (int i = cnt; i > 0; i--) + // { + // List combLst = PermutationAndCombination.GetCombination(filterErpAssemblyIdLst.ToArray(), i); //求全部的 n*n 组合 + // if (combLst == null) + // { + // continue; + // } + // foreach (Guid[] combItm in combLst) + // { + // #region ERP总成转换成PartBase + // List erpIdLst = combItm.ToList(); + // //按PartCode分组汇总PartNum + // var query = from item in _erp2partList + // where erpIdLst.Contains(item.ErpAssemblyId) + // group item by item.PartCode into g + // select new + // { + // PartCode = g.Key, + // PartNum = g.Sum(itm => itm.PartNum) + // }; + // List erpPartBaseLst = new List(); + // foreach (var item in query) + // { + // PartBase tempObj = new PartBase(item.PartCode, item.PartNum); + // erpPartBaseLst.Add(tempObj); + // } + // #endregion + + // bool isSame = ServerHelper.CompareTwoCollection(billPartBaseLst, erpPartBaseLst); + // if (isSame) //已匹配 + // { + // ret.ErpAssemblyIdList = erpIdLst; + // //为了在调用方法中将整车总成添加到内存 + // List vehicle2PartLst = new List(); + // foreach (var groupItm in erpPartBaseLst) + // { + // AssemblyCfgVehicle2Part vehicle2PartObj = new AssemblyCfgVehicle2Part(); + // vehicle2PartObj.PartCode = groupItm.PartCode; + // vehicle2PartObj.PartNum = groupItm.PartNum; + // vehicle2PartLst.Add(vehicle2PartObj); + // } + // ret.Vehicle2PartList = vehicle2PartLst; + // ret.IsMatch = true; + // return ret; + // } + // } + // } + // ret.IsMatch = false; + // return ret; + // } + // catch (Exception ex) + // { + // throw new Exception($"-CompareErpAssembly子方法-{_billNumber}-" + ex.Message); + // } + //} /// /// ERP总成比较【派格版】 @@ -1023,20 +1023,20 @@ namespace WY.NewJit.MsgCheck } else //执行零件切换 { - foreach (var item in query) - { - PartSwitch psObj = partSwitchListByBillFilter.FirstOrDefault(itm => itm.SourcePartCode == item.PartCode); - if (psObj != null) - { - PartBase obj = new PartBase(psObj.TargetPartCode, item.PartNum); //根据切换关系表,将总成的零件,从源零件替换成目标零件 - erpPartBaseLst.Add(obj); - } - else - { - PartBase obj = new PartBase(item.PartCode, item.PartNum); - erpPartBaseLst.Add(obj); - } - } + //foreach (var item in query) + //{ + // PartSwitch psObj = partSwitchListByBillFilter.FirstOrDefault(itm => itm.SourcePartCode == item.PartCode); + // if (psObj != null) + // { + // PartBase obj = new PartBase(psObj.TargetPartCode, item.PartNum); //根据切换关系表,将总成的零件,从源零件替换成目标零件 + // erpPartBaseLst.Add(obj); + // } + // else + // { + // PartBase obj = new PartBase(item.PartCode, item.PartNum); + // erpPartBaseLst.Add(obj); + // } + //} } #endregion diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/Services/SyncAssemblyService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/Services/SyncAssemblyService.cs index 56d0b6a..f961909 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/Services/SyncAssemblyService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/Services/SyncAssemblyService.cs @@ -731,7 +731,7 @@ namespace WY.NewJit.Job.ConsoleApp.Messages //取WMS数据(分为增、删、改三部分;每部分分为分组、总成、子零件三级) WmsInterfaceData wmsDatas = GetWmsGroupData(takeRecCnt); - List vehicleModelLst = _dicDomainService.GetDicItems(DicTypeName.派格车型); + List vehicleModelLst = _dicDomainService.GetDicItems(DicTypeName.格拉默车型); //取FIS总成数据(分为分组、总成、子零件三级) List allFisGroupLst = GetFisGroupData(); //同步新增BOM diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/appsettings.json index 68597f9..cf622ae 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.BomInterface/appsettings.json @@ -16,10 +16,10 @@ }, "ConnectionStrings": { - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs index 778c47a..45b39b2 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/Messages/MsgTransmissionService.cs @@ -488,7 +488,7 @@ namespace WY.NewJit.Job.ConsoleApp.Messages join FisAssemblyCfgPart ep on e.Id = ep.AssemblyCfgErpId where ep.PartCode is not null and not exists (select PartCode from FisPartCfg pc where IsDisable = 1 and ep.PartCode = pc.PartCode) - and ep.PartCode in (select distinct RelationKey from FisMaterialExt where MaterialGroup like '72%') + /*and ep.PartCode in (select distinct RelationKey from FisMaterialExt where MaterialGroup like '72%')*/ "; erp2partList = _newJitDapperRepository.GetListBySql(erp2partSql, true); @@ -513,9 +513,9 @@ namespace WY.NewJit.Job.ConsoleApp.Messages _r100CheckDomainSrv.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList, _partSwitchList); //整车总成内存及时刷新, ERP总成增删改时触发刷新标志 _m100CheckDomainService.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList, _partSwitchList); - _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应派格车型); - _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100派格车型对应生产线); - _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应格拉默车型); + _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100格拉默车型对应生产线); + _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); _logger.LogDebug("重新刷新报文解析缓存!"); } @@ -922,7 +922,7 @@ namespace WY.NewJit.Job.ConsoleApp.Messages _logger.LogError(errorMsg); } } - else //报文车型 没有对应的 派格车型 + else //报文车型 没有对应的 格拉默车型 { SetProductLineByExcept(bill); string errorMsg = $"报文车型{ediVehicleModel}没有对应的零件生产工厂车型!"; diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/appsettings.json index 97fd691..2497939 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleApp/appsettings.json @@ -60,11 +60,11 @@ }, "ConnectionStrings": { - /*"Default": "Server=192.168.0.140;Database=NewJitPG_TEST_0114;uid=sa;pwd=Microsoft2008;",*/ - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", + /*"Default": "Server=192.168.1.228;Database=NewJitPG_TEST_0114;uid=sa;pwd=ChangkeTec@2021;",*/ + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", /*"Default": "Server=192.168.0.216;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;",*/ - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, /* diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/Services/FileParse.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/Services/FileParse.cs index 071bac1..4855d78 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/Services/FileParse.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/Services/FileParse.cs @@ -403,8 +403,8 @@ namespace WY.NewJit.Job.ConsoleBatchImportBrokenNum.Services _m100CheckDomainService.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList, _partSwitchList);//整车总成内存及时刷新, ERP总成增删改时触发刷新标志 - _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应派格车型); - _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应格拉默车型); + _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); _logger.LogDebug("重新刷新报文解析缓存!"); } @@ -510,7 +510,7 @@ namespace WY.NewJit.Job.ConsoleBatchImportBrokenNum.Services _logger.LogError(errorMsg); } } - else //报文车型 没有对应的 派格车型 + else //报文车型 没有对应的 格拉默车型 { SetProductLineByExcept(billObj); string errorMsg = $"报文车型{ediVehicleModel}没有对应的零件生产工厂车型!VIN={billObj.VIN}【不终止错误】"; diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.Development.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.Development.json index 59b574c..bb6bd1d 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.Development.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.Development.json @@ -33,12 +33,12 @@ }, "ConnectionStrings": { - /*"Default": "Server=192.168.0.140;Database=NewJitPG_TEST_0114;uid=sa;pwd=Microsoft2008;",*/ - //"Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", + /*"Default": "Server=192.168.1.228;Database=NewJitPG_TEST_0114;uid=sa;pwd=ChangkeTec@2021;",*/ + //"Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", "Default": "Server=dev.ccwin-in.com,13326;Database=NewJitPG;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True", - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, "AuthServer": { diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.json index eb8a248..3a928f7 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleBatchImportBrokenNum/appsettings.json @@ -33,10 +33,10 @@ }, "ConnectionStrings": { - /*"Default": "Server=192.168.0.140;Database=NewJitPG_TEST_0114;uid=sa;pwd=Microsoft2008;",*/ - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + /*"Default": "Server=192.168.1.228;Database=NewJitPG_TEST_0114;uid=sa;pwd=ChangkeTec@2021;",*/ + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, "AuthServer": { diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/Messages/MsgTransmissionService.cs b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/Messages/MsgTransmissionService.cs index 2b6972a..dff72c0 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/Messages/MsgTransmissionService.cs +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/Messages/MsgTransmissionService.cs @@ -119,17 +119,17 @@ namespace WY.NewJit.Job.ConsoleApp.Messages #region 缓存 /// - /// 报文车型对应派格车型 + /// 报文车型对应格拉默车型 /// private static List _msgToPaiGeVehicleModelList = new List(); /// - /// R100派格车型对应生产线 + /// R100格拉默车型对应生产线 /// private static List _r100VehicleModelProductLineList = new List(); /// - /// M100派格车型对应生产线 + /// M100格拉默车型对应生产线 /// private static List _m100VehicleModelProductLineList = new List(); @@ -397,9 +397,9 @@ namespace WY.NewJit.Job.ConsoleApp.Messages // _r100CheckDomainSrv.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList); //整车总成内存及时刷新, ERP总成增删改时触发刷新标志 // _m100CheckDomainService.InitPub(vehicleAssemblyIdList, vehicle2partList, erpAssemblyMainList, erp2partList); - // _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应派格车型); - // _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100派格车型对应生产线); - // _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100派格车型对应生产线); + // _msgToPaiGeVehicleModelList = _dicDomainService.GetDicItems(DicTypeName.报文车型对应格拉默车型); + // _r100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.R100格拉默车型对应生产线); + // _m100VehicleModelProductLineList = _dicDomainService.GetDicItems(DicTypeName.M100格拉默车型对应生产线); //} //[UnitOfWork] diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/appsettings.json index 610b9e4..01b9d8a 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleGetEDIFile/appsettings.json @@ -1,7 +1,7 @@ { "App": { "SelfUrl": "http://localhost:44344", - "CorsOrigins": "https://*.abc.com,http://localhost:9528,http://192.168.0.140:8101,http://localhost:44344/,http://localhost:44344/*,http://localhost:44344/swagger/index.html" + "CorsOrigins": "https://*.abc.com,http://localhost:9528,http://192.168.1.228:8101,http://localhost:44344/,http://localhost:44344/*,http://localhost:44344/swagger/index.html" }, "ConfigDic": { @@ -46,9 +46,9 @@ }, "ConnectionStrings": { - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, @@ -66,7 +66,7 @@ "GrantType": "client_credentials", "ClientId": "business-app", "ClientSecret": "1q2w3e*", - "Authority": "http://192.168.0.140:8101", + "Authority": "http://192.168.1.228:8101", "Scope": "InternalGateway IdentityService SettleAccount" } }, diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleMoveFile/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleMoveFile/appsettings.json index 9de8193..ddcd867 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleMoveFile/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleMoveFile/appsettings.json @@ -11,7 +11,7 @@ "TakeFileCount": 20, "SleepMilliSecond": 0, - //"SourcePath": "\\\\192.168.0.140\\jis_rcv", + //"SourcePath": "\\\\192.168.1.228\\jis_rcv", //"CopyTargetPath": "D:\\~LYF\\~源码\\通用FIS\\src\\Modules\\新版JIT或JIS系统服务端\\src\\WY.NewJit.Job.ConsoleMoveFile\\bin\\Debug\\net5.0\\JIS_WORK", //"MoveTargetPath": "D:\\~LYF\\~源码\\通用FIS\\src\\Modules\\新版JIT或JIS系统服务端\\src\\WY.NewJit.Job.ConsoleMoveFile\\bin\\Debug\\net5.0\\JIS_WORK" "SourcePath": "D:\\\\~all-publish\\\\MessageFile_Test\\SourceDir", diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleSyncToWms/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleSyncToWms/appsettings.json index 6161555..96b41fa 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleSyncToWms/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Job.ConsoleSyncToWms/appsettings.json @@ -14,9 +14,9 @@ }, "ConnectionStrings": { - "Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", - "ABP": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + "Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", + "ABP": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/appsettings.json b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/appsettings.json index f52f377..1c4f3ea 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/appsettings.json +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/appsettings.json @@ -6,10 +6,10 @@ "ConnectionStrings": { //"NewJitPG": "Server=dev.ccwin-in.com,13326;Database=NewJitPG;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True", //"Default": "Server=dev.ccwin-in.com,13326;Database=ABP;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True", - //"Default": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", - "NewJitPG": "Server=192.168.0.140;Database=NewJitPG_TEST_20230703;uid=sa;pwd=Microsoft2008;", - "Default": "Server=192.168.0.140;Database=ABP;User ID=sa;Password=Microsoft2008;", - "WMS": "Server=192.168.0.140;Database=CPAT_WMS_TEST;User ID=sa;Password=Microsoft2008;" + //"Default": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", + "NewJitPG": "Server=192.168.1.228;Database=NewJitPG;uid=sa;pwd=ChangkeTec@2021;", + "Default": "Server=192.168.1.228;Database=ABP;User ID=sa;Password=ChangkeTec@2021;", + "WMS": "Server=192.168.1.228;Database=CPAT_WMS_TEST;User ID=sa;Password=ChangkeTec@2021;" }, "AuthServer": { diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-5e9b71b5.b7142855.js b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-5e9b71b5.b7142855.js index 8c5ebdb..521276a 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-5e9b71b5.b7142855.js +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-5e9b71b5.b7142855.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5e9b71b5"],{"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},"4e53":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e1b4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT8zMzg2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI0ZTUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZmNhOThjMiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4e53\n')},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8b51":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlP2Q1YTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiOGI1MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8b51\n")},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},a988:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=template&id=35fcc359&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"数据采集点","prop":"State"}},[_c(\'el-checkbox-group\',{model:{value:(_vm.listQuery.state),callback:function ($$v) {_vm.$set(_vm.listQuery, "state", $$v)},expression:"listQuery.state"}},_vm._l((_vm.billState),function(item,index){return _c(\'el-checkbox\',{key:item.id,attrs:{"label":item.id},on:{"change":function($event){return _vm.checkedListChange(index)}}},[_vm._v(" "+_vm._s(item.name)+" ")])}),1)],1),_c(\'el-form-item\',{attrs:{"label":"生产线:","prop":"productType"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.ptypeselectChange},model:{value:(_vm.listQuery.productType),callback:function ($$v) {_vm.$set(_vm.listQuery, "productType", $$v)},expression:"listQuery.productType"}},_vm._l((_vm.productTypeList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.name,"value":item.id}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"","prop":"productLine"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.productLine),callback:function ($$v) {_vm.$set(_vm.listQuery, "productLine", $$v)},expression:"listQuery.productLine"}},_vm._l((_vm.PLChildList),function(item){return _c(\'el-option\',{key:item.productLineCode,attrs:{"label":item.productLineName,"value":item.productLineCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"起始顺序号","prop":"HostSNBegin"}},[_c(\'el-input\',{staticStyle:{"width":"120px"},attrs:{"placeholder":"起始顺序号","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNBegin", $$v)},expression:"listQuery.HostSNBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"结束顺序号","prop":"HostSNEnd"}},[_c(\'el-input\',{staticStyle:{"width":"120px"},attrs:{"placeholder":"结束顺序号","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNEnd", $$v)},expression:"listQuery.HostSNEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"车型代码","prop":"vehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange1},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成名称","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"240px"},attrs:{"size":"small","value-format":"yyyy-MM-dd","type":"daterange","range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.OnlineTimeValue),callback:function ($$v) {_vm.OnlineTimeValue=$$v},expression:"OnlineTimeValue"}})],1),_c(\'el-form-item\',{attrs:{"label":"接收日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"240px"},attrs:{"size":"small","value-format":"yyyy-MM-dd","type":"daterange","range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.ReceiveTimeValue),callback:function ($$v) {_vm.ReceiveTimeValue=$$v},expression:"ReceiveTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel)查询信息 ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"底盘号","prop":"vin ","sortable":"custom","align":"center","fixed":"","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.vin))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'importExcel\',{ref:"importexcel",attrs:{"show":_vm.showExcelImport,"crmType":_vm.crmType},on:{"close":_vm.importExcelData}})],1),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=template&id=35fcc359&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.sort.js\nvar es6_array_sort = __webpack_require__("55dd");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\nvar objectSpread2 = __webpack_require__("5530");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__("456d");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/mixins/message_table.js\n\n\n/* harmony default export */ var message_table = ({\n components: {},\n data: function data() {\n return {\n loading: false,\n // 加载动画\n tableHeight: document.documentElement.clientHeight - 300,\n // 表的高度\n total: 0\n };\n },\n computed: {\n // 展示options下拉选择\n showOptions: function showOptions() {\n if (this.infoType == \'putInPoolRemind\') {\n return false;\n }\n\n return true;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$bus.on(\'message-scroll\', function (tableHeight) {\n _this.tableHeight = tableHeight;\n });\n this.$bus.on(\'examine-handle-bus\', function () {});\n /** 控制table的高度 */\n\n window.onresize = function () {\n _this.updateTableHeight();\n };\n },\n beforeDestroy: function beforeDestroy() {\n this.$bus.off(\'message-scroll\');\n this.$bus.off(\'examine-handle-bus\');\n\n if (document.getElementById(\'crm-table\')) {\n document.getElementById(\'crm-table\').removeEventListener(\'click\', function (e) {\n e.stopPropagation();\n });\n }\n },\n methods: {\n /**\r\n * 更新表高\r\n */\n updateTableHeight: function updateTableHeight() {\n var offsetHei = document.documentElement.clientHeight;\n var removeHeight = Object.keys(this.filterObj).length > 0 ? 360 : 300;\n this.tableHeight = offsetHei - removeHeight;\n }\n }\n});\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=template&id=5fca98c2&scoped=true&\nvar detailvue_type_template_id_5fca98c2_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":"","row-key":_vm.getRowKeys,"expand-row-keys":_vm.expands},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick,"expand-change":_vm.exChange}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"描述"}})],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_5fca98c2_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=template&id=5fca98c2&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n expands: [],\n //只展开一行放入当前行id\n getRowKeys: function getRowKeys(row) {\n return row.id; //这里看这一行中需要根据哪个属性值是id\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 160\n }); // tempsTabs.push({\n // label: "总成版本号",\n // prop: "erpAssemblyName",\n // width: 160,\n // });\n\n return tempsTabs;\n }\n },\n methods: {\n exChange: function exChange(row, rowList) {\n this.loading = true;\n var that = this;\n\n if (rowList.length) {\n that.expands = [];\n\n if (row) {\n that.expands.push(row.id); // 只展开当前行id\n }\n } else {\n that.expands = [];\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/repeat-m100/" + this.customerInfo.parentId).then(function (response) {\n _this2.list = response.item.m100RepeatParts;\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var repeatR100_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=style&index=0&id=5fca98c2&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true_ = __webpack_require__("4e53");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n repeatR100_detailvue_type_script_lang_js_,\n detailvue_type_template_id_5fca98c2_scoped_true_render,\n detailvue_type_template_id_5fca98c2_scoped_true_staticRenderFns,\n false,\n null,\n "5fca98c2",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var repeatR100vue_type_script_lang_js_ = ({\n name: "RepeatM100",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n mixins: [message_table],\n data: function data() {\n var _ref;\n\n return _ref = {\n crmType: "bomdatabase",\n customerInfos: [],\n billState: [{\n id: 2,\n name: "R100"\n }, {\n id: 3,\n name: "M100"\n }],\n isVINShowState: false,\n OnlineTimeValue: [],\n ReceiveTimeValue: [],\n versionValue: "",\n customerInfosMB: [],\n customerInfosZHB: [],\n versionList: [],\n //版本列表\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n productType: 1,\n //1:门板;2:柱护板\n ProductLine: undefined,\n checked1: true,\n checked2: true,\n SkipCount: 0,\n MaxResultCount: 15,\n HostSNBegin: undefined,\n HostSNEnd: undefined,\n VIN: undefined,\n VINBegin: undefined,\n VINEnd: undefined,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n ReceiveTimeBegin: undefined,\n ReceiveTimeEnd: undefined,\n VehicleModelCode: undefined,\n Version: undefined,\n KNR: undefined,\n state: []\n },\n listPLQuery: {\n BillType: 2 //UserId: this.userinfo.UserId,\n\n },\n vehicleModelQuery: {\n dicTypeName: "派格车型"\n },\n page: 1,\n // 显示搜索条件\n // VehicleModelCodelist:[\n // {id: 1, name: "C8"},\n // {id: 2, name: "B8L"},\n // {id: 3, name: "CC"},\n // {id: 4, name: "BSMV"},\n // {id: 5, name: "B9"},\n // {id: 6, name: "Q5"},\n // ],\n productTypeList: [{\n id: 1,\n name: "门板"\n }, {\n id: 2,\n name: "柱护板"\n }],\n showSearch: true,\n bomUnit: bomUnit,\n PLList: [],\n PLChildList: [],\n //筛选后产线下拉\n multipleSelection: []\n }, Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "isShowState", true), Object(defineProperty["a" /* default */])(_ref, "dialogTableVisible", false), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), _ref;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n });\n },\n created: function created() {\n var _this2 = this;\n\n //this.getList();\n this.billState.forEach(function (element, index) {\n if (index === 0) {\n _this2.listQuery.state.push(element.id);\n }\n });\n this.getvehicleModel();\n this.getProductLine();\n },\n computed: Object(objectSpread2["a" /* default */])({\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "流水号",\n prop: "serialNum",\n width: 100\n });\n tempsTabs.push({\n label: "大众顺序号",\n prop: "hostSN",\n width: 120\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 120\n });\n tempsTabs.push({\n label: "底盘号",\n prop: "vin",\n width: 130\n });\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "接收时间",\n prop: "receiveTime",\n width: 180\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "产线",\n prop: "productLine",\n width: 150\n });\n tempsTabs.push({\n label: "数据采集点",\n prop: "",\n width: 150\n });\n tempsTabs.push({\n label: "单据状态",\n prop: "billStatus",\n width: 120\n });\n tempsTabs.push({\n label: "车型名称",\n prop: "vehicleModelName",\n width: 120\n });\n return tempsTabs;\n }\n }, Object(vuex_esm["b" /* mapGetters */])(["userInfo"])),\n methods: {\n ss: function ss(data) {\n //alert(data);\n //版本下拉选择\n this.valueSelect = data;\n this.getList();\n },\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //传入的是总成id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this3 = this;\n\n this.listLoading = true; // if (this.OnlineTimeValue != []) {\n // this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n // this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n // }\n // if (this.ReceiveTimeValue != []) {\n // this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n // this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n // }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue ? this.OnlineTimeValue[0] || undefined : undefined;\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue ? this.OnlineTimeValue[1] || undefined : undefined;\n }\n\n if (this.ReceiveTimeValue != []) {\n this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue ? this.ReceiveTimeValue[0] || undefined : undefined;\n this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue ? this.ReceiveTimeValue[1] || undefined : undefined;\n }\n\n console.log("重复报文导出条件:" + JSON.stringify(this.listQuery));\n this.$axios.posts("/api/newjit/repeat-m100/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this3.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this3.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this3.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this3.listLoading = false;\n }).catch(function () {\n _this3.listLoading = false;\n });\n });\n },\n\n /*单据状态变更 */\n checkedListChange: function checkedListChange(index) {\n if (this.listQuery.state.length <= 1) {\n this.listQuery.state.push(this.billState[index].id);\n } else {\n this.listQuery.state = [];\n this.listQuery.state.push(this.billState[index].id);\n }\n\n if (this.listQuery.state[0] == "3") {\n this.isVINShowState = true;\n } else {\n this.isVINShowState = false;\n }\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.OnlineTimeValue = [];\n this.ReceiveTimeValue = [];\n this.listQuery.state = [];\n this.$refs[refName].resetFields();\n this.handleQuery();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1; //this.getList();\n // this.getListM100();\n // this.getListR100();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList(); // this.getListM100();\n // this.getListR100();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 1: "未领取生产任务",\n 2: "已领取生产任务",\n 3: "完成生产任务"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this4 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n } // if (this.valueSelect != "") {\n // this.listQuery.VehicleModelCode = this.valueSelect;\n // } else {\n // this.listQuery.VehicleModelCode = "";\n // }\n\n\n if (this.ReceiveTimeValue != []) {\n this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n }\n\n if (this.listQuery.state[0] == "2") {\n this.dialogTableVisible = false;\n console.log("555555555555555555555555555555" + JSON.stringify(this.listQuery));\n this.$axios.gets("/api/newjit/repeat-r100/list", this.listQuery).then(function (response) {\n _this4.list = response.items;\n _this4.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this4.listLoading = false;\n }, 500);\n }).catch(function () {\n _this4.listLoading = false;\n });\n } else {\n this.dialogTableVisible = true;\n this.$axios.gets("/api/newjit/repeat-m100/list", this.listQuery).then(function (response) {\n _this4.list = response.items;\n _this4.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this4.listLoading = false;\n }, 500);\n }).catch(function () {\n _this4.listLoading = false;\n });\n } // if (this.billState=== 2) {\n // this.$axios\n // .gets("/api/newjit/repeat-r100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // }\n // else if(this.billState === 3){\n // this.$axios\n // .gets("/api/newjit/repeat-m100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // }\n //}\n\n },\n // getList(data) {\n // this.listLoading = true;\n // if (data != undefined) {\n // this.listQuery.SkipCount = (this.page - 1) * data.limit;\n // } else {\n // this.listQuery.SkipCount = (this.page - 1) * 15;\n // }\n // if (this.OnlineTimeValue != []) {\n // this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n // this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n // }\n // if (this.ReceiveTimeValue != []) {\n // this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n // this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n // }\n // if (this.listQuery.state !== undefined) {\n // this.listQuery.billStatus = this.listQuery.state[0];\n // }\n // //this.listQueryList.ProductLine = this.listQuery.productLine;\n // this.$axios\n // .gets("/api/newjit/repeat-m100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // },\n handleFilter: function handleFilter() {\n this.dialogTableVisible = false;\n this.page = 1;\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n //产线类型变更\n ptypeselectChange: function ptypeselectChange() {\n var _this5 = this;\n\n debugger;\n this.$forceUpdate(); //console.log("222222222222222222222222222222222222222222"+this.listQuery.productType);\n\n this.listQuery.productLine = "";\n this.PLChildList = this.PLList.filter(function (u) {\n return u.productType === parseInt(_this5.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n console.log(this.PLList);\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n getProductLine: function getProductLine() {\n var _this6 = this;\n\n //debugger\n //console.log(JSON.stringify(this.userInfo));\n this.listPLQuery.UserId = this.userInfo.userId;\n console.log("this.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserId" + this.listPLQuery.UserId);\n this.$axios.gets("/api/newjit/product-line/list", this.listPLQuery).then(function (response) {\n //console.log("获取产线数据:"+JSON.stringify(response.item));\n _this6.PLList = response.item;\n _this6.PLChildList = _this6.PLList.filter(function (u) {\n return u.productType === parseInt(_this6.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n console.log("2222222获取产线数据:" + JSON.stringify(_this6.PLChildList));\n _this6.listQuery.productLine = _this6.PLChildList[0].productLineCode;\n\n if (_this6.listQuery.productLine != "") {\n //把产线值传到子组件\n _this6.customerInfosMB = [{\n PrintType: 1,\n ProductLine: _this6.PLChildList[0].productLineCode\n }];\n }\n\n _this6.getList(); // this.getListM100();\n // this.getListR100();\n //console.log(this.PLList)\n\n }).catch(function () {});\n },\n valueselectChange1: function valueselectChange1() {},\n valueselectChange: function valueselectChange(val) {\n this.$forceUpdate();\n this.customerInfosMB = [];\n this.customerInfosZHB = [];\n\n if (this.listQuery.productType === 1) {\n //把产线值传到子组件\n this.customerInfosMB = [{\n PrintType: 1,\n ProductLine: val\n }];\n }\n\n if (this.listQuery.productType === 2) {\n //把产线值传到子组件\n this.customerInfosZHB = [{\n PrintType: 1,\n ProductLine: val\n }];\n }\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n getvehicleModel: function getvehicleModel() {\n var _this7 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this7.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_repeatR100vue_type_script_lang_js_ = (repeatR100vue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=style&index=0&id=35fcc359&lang=scss&scoped=true&\nvar repeatR100vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true_ = __webpack_require__("d8a5");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar repeatR100_component = Object(componentNormalizer["a" /* default */])(\n basedate_repeatR100vue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "35fcc359",\n null\n \n)\n\n/* harmony default export */ var repeatR100 = __webpack_exports__["default"] = (repeatR100_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzFmNTkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL21peGlucy9tZXNzYWdlX3RhYmxlLmpzP2Y1YjEiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2RldGFpbC52dWU/YzBhMCIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2RldGFpbC52dWU/MTk1ZiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT80MzA1Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvcmVwZWF0UjEwMC9kZXRhaWwudnVlPzJlZmQiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvcmVwZWF0UjEwMC9pbmRleC52dWU/NjNlZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzM2ZTIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2luZGV4LnZ1ZT8zNmY1Il0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJkYXRhIiwibG9hZGluZyIsInRhYmxlSGVpZ2h0IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJ0b3RhbCIsImNvbXB1dGVkIiwic2hvd09wdGlvbnMiLCJpbmZvVHlwZSIsIm1vdW50ZWQiLCIkYnVzIiwib24iLCJ3aW5kb3ciLCJvbnJlc2l6ZSIsInVwZGF0ZVRhYmxlSGVpZ2h0IiwiYmVmb3JlRGVzdHJveSIsIm9mZiIsImdldEVsZW1lbnRCeUlkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJtZXRob2RzIiwib2Zmc2V0SGVpIiwicmVtb3ZlSGVpZ2h0IiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlck9iaiIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsT0FBTyxnQ0FBZ0MsMEJBQTBCLE9BQU8scURBQXFELHNDQUFzQywrQkFBK0IsNkNBQTZDLHlCQUF5QixtQkFBbUIsZ0JBQWdCLEtBQUssMEJBQTBCLHNDQUFzQyxzQ0FBc0MsNEJBQTRCLE9BQU8scUNBQXFDLGtCQUFrQixhQUFhLHNCQUFzQixRQUFRLG1EQUFtRCxLQUFLLCtCQUErQixRQUFRLDJEQUEyRCw0Q0FBNEMscUNBQXFDLDZDQUE2Qyx1QkFBdUIsbUJBQW1CLG1DQUFtQyxFQUFFLDRCQUE0QixPQUFPLGlDQUFpQyxrQkFBa0IsYUFBYSxzQkFBc0IsUUFBUSxtREFBbUQsS0FBSywrQkFBK0IsUUFBUSwyREFBMkQsNENBQTRDLHFDQUFxQyx5Q0FBeUMsdUJBQXVCLGdDQUFnQywyREFBMkQsRUFBRSw0QkFBNEIsT0FBTyxzQ0FBc0MsaUJBQWlCLGFBQWEsZ0JBQWdCLFFBQVEsb0RBQW9ELFdBQVcseUJBQXlCLHNGQUFzRixhQUFhLEVBQUUsZ0NBQWdDLFFBQVEsMkRBQTJELDRDQUE0QyxxQ0FBcUMseUJBQXlCLE9BQU8sb0NBQW9DLGlCQUFpQixhQUFhLGdCQUFnQixRQUFRLG9EQUFvRCxXQUFXLHlCQUF5QixzRkFBc0YsYUFBYSxFQUFFLGdDQUFnQyxRQUFRLHlEQUF5RCwwQ0FBMEMsbUNBQW1DLHlCQUF5QixPQUFPLGtDQUFrQyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSwrQ0FBK0MsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSx3REFBd0QseUNBQXlDLGtDQUFrQyx5QkFBeUIsT0FBTyw2QkFBNkIsaUJBQWlCLGFBQWEsZ0JBQWdCLFFBQVEsK0NBQStDLFdBQVcseUJBQXlCLHNGQUFzRixhQUFhLEVBQUUsZ0NBQWdDLFFBQVEsc0RBQXNELHVDQUF1QyxnQ0FBZ0MseUJBQXlCLE9BQU8sa0NBQWtDLGlCQUFpQixhQUFhLGdCQUFnQixRQUFRLCtDQUErQyxXQUFXLHlCQUF5QixzRkFBc0YsYUFBYSxFQUFFLGdDQUFnQyxRQUFRLHdEQUF3RCx5Q0FBeUMsa0NBQWtDLHlCQUF5QixPQUFPLDZCQUE2QixpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSwrQ0FBK0MsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSxzREFBc0QsdUNBQXVDLGdDQUFnQyx5QkFBeUIsT0FBTywwQ0FBMEMsa0JBQWtCLGFBQWEsc0JBQXNCLFFBQVEsbURBQW1ELEtBQUssZ0NBQWdDLFFBQVEsZ0VBQWdFLGlEQUFpRCwwQ0FBMEMsOENBQThDLHVCQUF1QixtQkFBbUIsbURBQW1ELEVBQUUsNEJBQTRCLE9BQU8sK0JBQStCLGlCQUFpQixhQUFhLGdCQUFnQixRQUFRLHNEQUFzRCxXQUFXLHlCQUF5QixzRkFBc0YsYUFBYSxFQUFFLGdDQUFnQyxRQUFRLHVEQUF1RCx3Q0FBd0MsaUNBQWlDLHlCQUF5QixPQUFPLGdCQUFnQix1QkFBdUIsYUFBYSxnQkFBZ0IsUUFBUSx3SUFBd0ksUUFBUSxxREFBcUQsd0JBQXdCLCtCQUErQix5QkFBeUIsT0FBTyxnQkFBZ0IsdUJBQXVCLGFBQWEsZ0JBQWdCLFFBQVEsd0lBQXdJLFFBQVEsc0RBQXNELHlCQUF5QixnQ0FBZ0MseUNBQXlDLE9BQU8sdURBQXVELEtBQUssMEJBQTBCLGlDQUFpQyxPQUFPLHVDQUF1QyxLQUFLLHlCQUF5QixxQ0FBcUMsaUNBQWlDLGFBQWEscUJBQXFCLFFBQVEsb0VBQW9FLEtBQUsseUJBQXlCLDhCQUE4Qix1REFBdUQsc0JBQXNCLGlCQUFpQixhQUFhLG9GQUFvRiwwREFBMEQsZUFBZSxRQUFRLDJQQUEyUCxLQUFLLDBHQUEwRyx3QkFBd0IsT0FBTyw0RkFBNEYsc0JBQXNCLGlDQUFpQyxtQkFBbUIsNEJBQTRCLHlCQUF5Qix5Q0FBeUMsb0NBQW9DLEdBQUcsb0RBQW9ELDZCQUE2QixpQkFBaUIsb0pBQW9KLHNCQUFzQixnQ0FBZ0MscURBQXFELGFBQWEsRUFBRSxvQkFBb0IsMkJBQTJCLG1CQUFtQixhQUFhLG9GQUFvRixTQUFTLDRFQUE0RSxLQUFLLCtCQUErQixnQkFBZ0IsaUNBQWlDLHlEQUF5RCwyQkFBMkIsb0JBQW9CLHlCQUF5QixpREFBaUQsS0FBSyw2QkFBNkIsc0JBQXNCLE9BQU8seUdBQXlHLEtBQUssa0NBQWtDLG9CQUFvQix5QkFBeUIsYUFBYSxxQkFBcUIsUUFBUSxtQ0FBbUM7QUFDNzFSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBZTtBQUNiQSxZQUFVLEVBQUUsRUFEQztBQUViQyxNQUZhLGtCQUVOO0FBQ0wsV0FBTztBQUNMQyxhQUFPLEVBQUUsS0FESjtBQUNXO0FBQ2hCQyxpQkFBVyxFQUFFQyxRQUFRLENBQUNDLGVBQVQsQ0FBeUJDLFlBQXpCLEdBQXdDLEdBRmhEO0FBRXFEO0FBQzFEQyxXQUFLLEVBQUU7QUFIRixLQUFQO0FBS0QsR0FSWTtBQVViQyxVQUFRLEVBQUU7QUFDUjtBQUNBQyxlQUZRLHlCQUVNO0FBQ1osVUFBSSxLQUFLQyxRQUFMLElBQWlCLGlCQUFyQixFQUF3QztBQUN0QyxlQUFPLEtBQVA7QUFDRDs7QUFDRCxhQUFPLElBQVA7QUFDRDtBQVBPLEdBVkc7QUFvQmJDLFNBcEJhLHFCQW9CSDtBQUFBOztBQUNSLFNBQUtDLElBQUwsQ0FBVUMsRUFBVixDQUFhLGdCQUFiLEVBQStCLFVBQUFWLFdBQVcsRUFBSTtBQUM1QyxXQUFJLENBQUNBLFdBQUwsR0FBbUJBLFdBQW5CO0FBQ0QsS0FGRDtBQUlBLFNBQUtTLElBQUwsQ0FBVUMsRUFBVixDQUFhLG9CQUFiLEVBQW1DLFlBQU0sQ0FDeEMsQ0FERDtBQUdBOztBQUNBQyxVQUFNLENBQUNDLFFBQVAsR0FBa0IsWUFBTTtBQUN0QixXQUFJLENBQUNDLGlCQUFMO0FBQ0QsS0FGRDtBQUdELEdBaENZO0FBa0NiQyxlQWxDYSwyQkFrQ0c7QUFDZCxTQUFLTCxJQUFMLENBQVVNLEdBQVYsQ0FBYyxnQkFBZDtBQUNBLFNBQUtOLElBQUwsQ0FBVU0sR0FBVixDQUFjLG9CQUFkOztBQUVBLFFBQUlkLFFBQVEsQ0FBQ2UsY0FBVCxDQUF3QixXQUF4QixDQUFKLEVBQTBDO0FBQ3hDZixjQUFRLENBQUNlLGNBQVQsQ0FBd0IsV0FBeEIsRUFBcUNDLG1CQUFyQyxDQUF5RCxPQUF6RCxFQUFrRSxVQUFBQyxDQUFDLEVBQUk7QUFDckVBLFNBQUMsQ0FBQ0MsZUFBRjtBQUNELE9BRkQ7QUFHRDtBQUNGLEdBM0NZO0FBNkNiQyxTQUFPLEVBQUU7QUFDUDtBQUNKO0FBQ0E7QUFDSVAscUJBSk8sK0JBSWE7QUFDbEIsVUFBSVEsU0FBUyxHQUFHcEIsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxZQUF6QztBQUNBLFVBQUltQixZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLEtBQUtDLFNBQWpCLEVBQTRCQyxNQUE1QixHQUFxQyxDQUFyQyxHQUF5QyxHQUF6QyxHQUErQyxHQUFsRTtBQUNBLFdBQUsxQixXQUFMLEdBQW1CcUIsU0FBUyxHQUFHQyxZQUEvQjtBQUNEO0FBUk07QUE3Q0ksQ0FBZixFOztBQ0RBLElBQUksc0RBQU0sZ0JBQWdCLGFBQWEsMEJBQTBCLHdCQUF3QixpQkFBaUIsOEJBQThCLGlCQUFpQixhQUFhLG9GQUFvRiwwREFBMEQsZUFBZSxRQUFRLGtUQUFrVCxLQUFLLHVJQUF1SSx3QkFBd0IsT0FBTyxvQ0FBb0Msd0JBQXdCLE9BQU8sbUNBQW1DLHdCQUF3QixPQUFPLG1DQUFtQyxnQkFBZ0IsMkJBQTJCLG1CQUFtQixhQUFhLG9GQUFvRixTQUFTLDRFQUE0RSxLQUFLLCtCQUErQixnQkFBZ0IsaUNBQWlDLHlEQUF5RCwyQkFBMkI7QUFDNzJDLElBQUksK0RBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NDMkNuQjs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0EsaUNBREE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBRkE7QUFHQTtBQUFBO0FBQUEsR0FIQTtBQUlBO0FBQ0Esd0JBREEsZ0NBQ0EsTUFEQSxFQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQURBO0FBRUE7QUFGQTtBQUlBO0FBQ0E7QUFSQSxHQUpBO0FBY0E7QUFDQTtBQUNBLGlCQURBO0FBRUE7QUFDQTtBQUNBO0FBSkE7QUFEQSxHQWRBO0FBc0JBLE1BdEJBLGtCQXNCQTtBQUNBO0FBQ0EsbUNBREE7QUFFQTtBQUNBO0FBQ0EsMEJBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQURBO0FBRkEsT0FGQTtBQVFBLGlCQVJBO0FBUUE7QUFDQTtBQUNBLHNCQURBLENBQ0E7QUFDQSxPQVhBO0FBWUEsdUJBWkE7QUFZQTtBQUNBO0FBQ0E7QUFEQSxPQWJBO0FBZ0JBO0FBQ0EsdUJBREE7QUFFQSxzQkFGQTtBQUdBO0FBSEEsT0FoQkE7QUFxQkEsZ0JBckJBO0FBc0JBLG1CQXRCQTtBQXVCQSx1QkF2QkE7QUF3QkEsd0JBeEJBO0FBeUJBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBO0FBQ0E7QUFDQTtBQUpBLE9BMUJBO0FBZ0NBO0FBQ0Esa0JBQ0E7QUFDQSxrQkFEQTtBQUVBLDJCQUZBO0FBR0EsbUJBSEE7QUFJQTtBQUpBLFNBREEsQ0FNQTtBQU5BLFNBREE7QUFTQSxvQkFUQTtBQVVBLDBCQVZBO0FBV0E7QUFYQSxPQWhDQTtBQTZDQSxhQTdDQTtBQThDQSw4QkE5Q0E7QUErQ0EsMkJBL0NBO0FBZ0RBLG1CQWhEQTtBQWlEQSxtQkFqREE7QUFrREEsNEJBbERBO0FBbURBLDZEQW5EQTtBQW9EQTtBQXBEQTtBQXNEQSxHQTdFQTtBQThFQSxTQTlFQSxxQkE4RUE7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUhBO0FBSUEsR0FwRkE7QUFxRkEsU0FyRkEscUJBcUZBO0FBQ0E7QUFDQSxHQXZGQTtBQXdGQTtBQUNBO0FBQ0EsYUFEQSxtQkFDQSxNQURBLEVBQ0E7QUFBQTs7QUFDQSxvREFDQTtBQUNBLFNBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUZBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FaQTtBQWFBO0FBYkE7QUFEQSxHQXhGQTtBQXlHQTtBQUNBO0FBQ0EsbUJBRkEsNkJBRUE7QUFDQTtBQUNBO0FBQ0EscUJBREE7QUFFQSwrQkFGQTtBQUdBO0FBSEEsU0FGQSxDQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQWZBLEdBekdBO0FBMEhBO0FBQ0EsWUFEQSxvQkFDQSxHQURBLEVBQ0EsT0FEQSxFQUNBO0FBQ0E7QUFFQTs7QUFDQTtBQUNBOztBQUNBO0FBQ0Esb0NBREEsQ0FDQTtBQUNBO0FBQ0EsT0FMQSxNQUtBO0FBQ0E7QUFDQTtBQUNBLEtBYkE7O0FBY0E7QUFDQSxnQkFmQSx3QkFlQSxJQWZBLEVBZUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQW5CQTs7QUFvQkE7QUFDQSxrQkFyQkEsMEJBcUJBLEdBckJBLEVBcUJBLE1BckJBLEVBcUJBO0FBQ0E7QUFDQSxLQXZCQTtBQXdCQSxtQkF4QkEsNkJBd0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0E1QkE7QUE2QkEsV0E3QkEscUJBNkJBO0FBQUE7O0FBQ0E7QUFDQTtBQUNBLGtCQUNBLElBREEsQ0FDQSx1REFEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FIQSxFQUdBLEdBSEE7QUFJQSxPQVJBLEVBU0EsS0FUQSxDQVNBO0FBQ0E7QUFDQSxPQVhBO0FBWUEsS0E1Q0E7O0FBNkNBO0FBQ0EsZ0JBOUNBLDBCQThDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFEQTtBQUVBLHdCQUZBO0FBR0EsbUJBSEE7QUFJQTtBQUpBO0FBTUE7QUFDQTs7QUFDQTtBQUNBLEtBN0RBO0FBOERBLGNBOURBLHdCQThEQSxFQTlEQTtBQWdFQSxjQWhFQSxzQkFnRUEsSUFoRUEsRUFnRUE7QUFDQTtBQUFBOztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQSxLQXhFQTtBQXlFQSx5QkF6RUEsaUNBeUVBLEdBekVBLEVBeUVBO0FBQ0E7QUFDQSxLQTNFQTs7QUE0RUE7QUFDQSxhQTdFQSwyQkE2RUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQSxVQUNBLGdDQUNBLDZCQURBLElBRUEsOEJBSEEsRUFJQTtBQUNBO0FBQUE7QUFBQTtBQUNBLE9BTkEsTUFNQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0EsS0F2RkE7O0FBd0ZBO0FBQ0Esa0JBekZBLGlDQXlGQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBLFVBQ0EsZ0NBQ0EsNkJBREEsSUFFQSw4QkFIQSxFQUlBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQSxPQU5BLE1BTUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0EsS0FuR0E7QUFvR0Esa0JBcEdBLDBCQW9HQSxHQXBHQSxFQW9HQSxNQXBHQSxFQW9HQSxLQXBHQSxFQW9HQTtBQUNBO0FBQ0E7QUFDQTtBQXZHQTtBQTFIQSxHOztBQ2xENlcsQ0FBZ0IsNEdBQUcsRUFBQyxDOzs7Ozs7OztBQ0FoUztBQUN2QztBQUNMO0FBQ3NDOzs7QUFHM0Y7QUFDbUc7QUFDbkcsZ0JBQWdCLDhDQUFVO0FBQzFCLEVBQUUseUNBQU07QUFDUixFQUFFLHNEQUFNO0FBQ1IsRUFBRSwrREFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFZSw0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN3U2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0NBR0E7O0FBQ0EsZUFDQTtBQUFBO0FBQUE7QUFBQSxDQURBLEVBRUE7QUFBQTtBQUFBO0FBQUEsQ0FGQSxFQUdBO0FBQUE7QUFBQTtBQUFBLENBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQSxDQUhBLEVBR0EsRUFIQTtBQUtBO0FBQ0Esb0JBREE7QUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsR0FGQTtBQUdBO0FBQUE7QUFBQSxHQUhBO0FBSUE7QUFDQSx3QkFEQSxnQ0FDQSxNQURBLEVBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBREE7QUFFQTtBQUZBO0FBSUE7QUFDQTtBQVJBLEdBSkE7QUFjQSx5QkFkQTtBQWVBLE1BZkEsa0JBZUE7QUFBQTs7QUFDQTtBQUNBLDRCQURBO0FBRUEsdUJBRkE7QUFHQSxrQkFDQTtBQUFBO0FBQUE7QUFBQSxPQURBLEVBRUE7QUFBQTtBQUFBO0FBQUEsT0FGQSxDQUhBO0FBT0EsMkJBUEE7QUFRQSx5QkFSQTtBQVNBLDBCQVRBO0FBVUEsc0JBVkE7QUFXQSx5QkFYQTtBQVlBLDBCQVpBO0FBYUEscUJBYkE7QUFhQTtBQUNBLHVCQWRBO0FBY0E7QUFDQSw0QkFmQTtBQWdCQSxjQWhCQTtBQWlCQSxtQkFqQkE7QUFrQkEsZ0JBbEJBO0FBbUJBLG1CQW5CQTtBQW9CQSx1QkFwQkE7QUFxQkE7QUFDQTtBQURBLE9BckJBO0FBd0JBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBO0FBQ0E7QUFDQTtBQUpBLE9BekJBO0FBK0JBO0FBRUEsc0JBRkE7QUFFQTtBQUNBLDhCQUhBO0FBSUEsc0JBSkE7QUFLQSxzQkFMQTtBQU1BLG9CQU5BO0FBT0EsMEJBUEE7QUFRQSw4QkFSQTtBQVNBLDRCQVRBO0FBVUEsc0JBVkE7QUFXQSwyQkFYQTtBQVlBLHlCQVpBO0FBYUEsa0NBYkE7QUFjQSxnQ0FkQTtBQWVBLG1DQWZBO0FBZ0JBLGlDQWhCQTtBQWlCQSxtQ0FqQkE7QUFrQkEsMEJBbEJBO0FBbUJBLHNCQW5CQTtBQW9CQTtBQXBCQSxPQS9CQTtBQXNEQTtBQUNBLG1CQURBLENBRUE7O0FBRkEsT0F0REE7QUEwREE7QUFDQTtBQURBLE9BMURBO0FBNkRBLGFBN0RBO0FBOERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUNBO0FBQUE7QUFBQTtBQUFBLE9BREEsRUFFQTtBQUFBO0FBQUE7QUFBQSxPQUZBLENBdkVBO0FBMkVBLHNCQTNFQTtBQTRFQSxzQkE1RUE7QUE2RUEsZ0JBN0VBO0FBOEVBLHFCQTlFQTtBQThFQTtBQUNBO0FBL0VBLGlFQWdGQSxLQWhGQSxrRUFpRkEsSUFqRkEseUVBa0ZBLEtBbEZBLHVFQW1GQSxFQW5GQTtBQXNGQSxHQXRHQTtBQXVHQSxTQXZHQSxxQkF1R0E7QUFBQTs7QUFDQTtBQUNBLDREQURBLENBRUE7O0FBQ0E7QUFDQSxxREFKQSxDQUlBO0FBQ0EsS0FMQTtBQU1BLEdBOUdBO0FBK0dBLFNBL0dBLHFCQStHQTtBQUFBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUpBO0FBS0E7QUFDQTtBQUNBLEdBeEhBO0FBeUhBO0FBQ0EsbUJBREEsNkJBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQSxvQkFEQTtBQUVBLG1CQUZBO0FBR0E7QUFIQTtBQUtBO0FBQ0Esb0JBREE7QUFFQSxtQkFGQTtBQUdBO0FBSEE7QUFLQTtBQUNBLHFCQURBO0FBRUEsMEJBRkE7QUFHQTtBQUhBO0FBS0E7QUFDQSxxQkFEQTtBQUVBLDJCQUZBO0FBR0E7QUFIQTtBQUtBO0FBQ0EscUJBREE7QUFFQSxnQ0FGQTtBQUdBO0FBSEE7QUFLQTtBQUNBLG1CQURBO0FBRUEsdUJBRkE7QUFHQTtBQUhBO0FBS0E7QUFDQSxtQkFEQTtBQUVBLDJCQUZBO0FBR0E7QUFIQTtBQUtBO0FBQ0Esc0JBREE7QUFFQSxnQkFGQTtBQUdBO0FBSEE7QUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQSxxQkFEQTtBQUVBLGdDQUZBO0FBR0E7QUFIQTtBQUtBO0FBQ0E7QUFyREEsS0FzREEsb0RBdERBLENBekhBO0FBaUxBO0FBQ0EsTUFEQSxjQUNBLElBREEsRUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FOQTtBQU9BO0FBQ0Esb0JBUkEsNEJBUUEsS0FSQSxFQVFBO0FBQ0E7QUFDQSw4QkFGQSxDQUVBOztBQUNBLDRCQUNBO0FBQ0E7QUFEQSxPQURBO0FBS0EsS0FoQkE7QUFpQkEscUJBakJBLDZCQWlCQSxJQWpCQSxFQWlCQTtBQUNBO0FBQ0EsS0FuQkE7O0FBb0JBO0FBQ0Esa0JBckJBLDRCQXFCQTtBQUFBOztBQUNBLDhCQURBLENBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBLGdFQUNBLG9DQURBLEdBRUEsU0FGQTtBQUdBLDhEQUNBLG9DQURBLEdBRUEsU0FGQTtBQUdBOztBQUNBO0FBQ0Esa0VBQ0EscUNBREEsR0FFQSxTQUZBO0FBSUEsZ0VBQ0EscUNBREEsR0FFQSxTQUZBO0FBR0E7O0FBQ0E7QUFDQSxrQkFDQSxLQURBLENBQ0EsZ0NBREEsRUFDQSxjQURBLEVBRUEsSUFGQSxDQUVBO0FBQ0E7O0FBQ0Esc0JBQ0EsUUFEQSxDQUNBLG1EQURBLEVBRUEsSUFGQSxDQUVBO0FBQ0E7QUFDQSwyQkFDQSwrQ0FDQSx5Q0FGQTtBQUdBOztBQUNBO0FBQ0EseUJBREE7QUFFQSxpQ0FGQTtBQUdBLDZCQUhBO0FBSUE7QUFKQTtBQU1BLFdBWEEsTUFXQTtBQUNBOztBQUNBO0FBQ0EseUJBREE7QUFFQSxpQ0FGQTtBQUdBLDZCQUhBO0FBSUE7QUFKQTtBQU1BOztBQUNBO0FBQ0EsU0F4QkEsRUF5QkEsS0F6QkEsQ0F5QkE7QUFDQTtBQUNBLFNBM0JBO0FBNEJBLE9BaENBO0FBaUNBLEtBbEZBOztBQW1GQTtBQUNBLHFCQXBGQSw2QkFvRkEsS0FwRkEsRUFvRkE7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLDBDQUNBO0FBQ0E7QUFDQSxPQUhBLE1BS0E7QUFDQTtBQUNBO0FBQ0EsS0FuR0E7O0FBb0dBO0FBQ0EsY0FyR0Esc0JBcUdBLE9BckdBLEVBcUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBM0dBOztBQTRHQTtBQUNBLGVBN0dBLHlCQTZHQTtBQUNBLG1DQURBLENBRUE7QUFDQTtBQUNBO0FBQ0EsS0FsSEE7QUFtSEEsZUFuSEEsdUJBbUhBLE1BbkhBLEVBbUhBO0FBQ0E7QUFDQTtBQUNBLHFCQUhBLENBSUE7QUFDQTtBQUNBLEtBekhBO0FBMkhBLHVCQTNIQSwrQkEySEEsSUEzSEEsRUEySEE7QUFDQSxxQkFEQSxDQUVBO0FBQ0E7QUFDQSxLQS9IQTtBQWdJQSxtQkFoSUEsNkJBZ0lBO0FBQ0E7QUFDQSxtQ0FGQSxDQUdBO0FBQ0EsS0FwSUE7O0FBc0lBO0FBQ0EsZ0JBdklBLHdCQXVJQSxJQXZJQSxFQXVJQTtBQUNBO0FBQ0EsdUJBREEsQ0FFQTtBQUNBO0FBQ0E7QUFDQSxLQTdJQTs7QUE4SUE7QUFDQSxrQkEvSUEsMEJBK0lBLEdBL0lBLEVBK0lBLE1BL0lBLEVBK0lBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFVBQ0Esb0JBREE7QUFHQTs7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBOztBQUNBO0FBQ0EsS0E3SkE7QUE4SkEsY0E5SkEsc0JBOEpBLElBOUpBLEVBOEpBO0FBQ0E7QUFFQSxLQWpLQTtBQW1LQSxXQW5LQSxtQkFtS0EsSUFuS0EsRUFtS0E7QUFBQTs7QUFFQTs7QUFDQTtBQUNBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQVhBLENBWUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsMENBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQ0EsSUFEQSxDQUNBLDhCQURBLEVBQ0EsY0FEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUhBLEVBR0EsR0FIQTtBQUlBLFNBVEEsRUFVQSxLQVZBLENBVUE7QUFDQTtBQUNBLFNBWkE7QUFhQSxPQWpCQSxNQW1CQTtBQUNBO0FBQ0Esb0JBQ0EsSUFEQSxDQUNBLDhCQURBLEVBQ0EsY0FEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUhBLEVBR0EsR0FIQTtBQUlBLFNBVEEsRUFVQSxLQVZBLENBVUE7QUFDQTtBQUNBLFNBWkE7QUFhQSxPQXhEQSxDQTBEQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQSxLQWhRQTtBQWlRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFsU0EsMEJBa1NBO0FBQ0E7QUFDQTtBQUNBLHFCQUhBLENBSUE7QUFDQTtBQUNBLEtBeFNBO0FBeVNBO0FBQ0EscUJBMVNBLCtCQTBTQTtBQUFBOztBQUNBO0FBQ0EsMEJBRkEsQ0FHQTs7QUFDQTtBQUNBLDRDQUNBO0FBQUE7QUFBQSxPQURBLEVBRUEsSUFGQSxDQUVBO0FBQ0E7QUFDQSxPQUpBO0FBS0E7QUFDQSxLQXJUQTtBQXNUQSxjQXRUQSxzQkFzVEEsSUF0VEEsRUFzVEE7QUFDQTtBQUFBOztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQSxLQTlUQTtBQStUQSxrQkEvVEEsNEJBK1RBO0FBQUE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFDQSxJQURBLENBQ0EsK0JBREEsRUFDQSxnQkFEQSxFQUVBLElBRkEsQ0FFQTtBQUVBO0FBQ0E7QUFFQSxrREFDQTtBQUFBO0FBQUEsU0FEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0EsU0FKQTtBQUtBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLG9DQUNBO0FBQ0Esd0JBREE7QUFFQTtBQUZBLFdBREE7QUFNQTs7QUFDQSx5QkFyQkEsQ0FzQkE7QUFDQTtBQUNBOztBQUNBLE9BM0JBLEVBNEJBLEtBNUJBLENBNEJBLGNBNUJBO0FBNkJBLEtBaldBO0FBa1dBLHNCQWxXQSxnQ0FrV0EsRUFsV0E7QUFvV0EscUJBcFdBLDZCQW9XQSxHQXBXQSxFQW9XQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0EsZ0NBQ0E7QUFDQSxzQkFEQTtBQUVBO0FBRkEsU0FEQTtBQU1BOztBQUNBO0FBQ0E7QUFDQSxpQ0FDQTtBQUNBLHNCQURBO0FBRUE7QUFGQSxTQURBO0FBTUE7QUFDQSxLQTFYQTtBQTRYQSx5QkE1WEEsaUNBNFhBLEdBNVhBLEVBNFhBO0FBQ0E7QUFDQSxLQTlYQTtBQWdZQSxtQkFoWUEsNkJBaVlBO0FBQUE7O0FBQ0Esa0JBQ0EsSUFEQSxDQUVBLHNCQUZBLEVBRUEsc0JBRkEsRUFJQSxJQUpBLENBSUE7QUFDQTtBQUNBLGdEQUZBLENBR0E7QUFDQSxPQVJBLEVBU0EsS0FUQSxDQVNBLGFBQ0EsQ0FWQTtBQVdBLEtBN1lBOztBQThZQTtBQUNBLGFBL1lBLDRCQStZQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0EsT0FGQSxNQUVBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQSxLQXJaQTs7QUFzWkE7QUFDQSxrQkF2WkEsaUNBdVpBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQSxLQTdaQTtBQThaQSxrQkE5WkEsMEJBOFpBLEdBOVpBLEVBOFpBLE1BOVpBLEVBOFpBLEtBOVpBLEVBOFpBO0FBQ0E7QUFDQTtBQUNBO0FBamFBO0FBakxBLEc7O0FDalY0VyxDQUFnQixrSEFBRyxFQUFDLEM7Ozs7O0FDQWhTO0FBQ3ZDO0FBQ0w7QUFDc0M7OztBQUcxRjtBQUNtRztBQUNuRyxJQUFJLG9CQUFTLEdBQUcsOENBQVU7QUFDMUIsRUFBRSwyQ0FBTTtBQUNSLEVBQUUsTUFBTTtBQUNSLEVBQUUsZUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFZSxvR0FBUyxRIiwiZmlsZSI6ImE5ODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjci1ib2R5LWNvbnRlbnRcIn0sW19jKCdkaXYnLHtyZWY6XCJib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJjb250ZW50LWhlYWRlclwifSxbX2MoJ2VsLWZvcm0nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93U2VhcmNoKSxleHByZXNzaW9uOlwic2hvd1NlYXJjaFwifV0scmVmOlwicXVlcnlGb3JtXCIsYXR0cnM6e1wibW9kZWxcIjpfdm0ubGlzdFF1ZXJ5LFwiaW5saW5lXCI6dHJ1ZX19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaVsOaNrumHh+mbhueCuVwiLFwicHJvcFwiOlwiU3RhdGVcIn19LFtfYygnZWwtY2hlY2tib3gtZ3JvdXAnLHttb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuc3RhdGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInN0YXRlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuc3RhdGVcIn19LF92bS5fbCgoX3ZtLmJpbGxTdGF0ZSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdlbC1jaGVja2JveCcse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5pZH0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoZWNrZWRMaXN0Q2hhbmdlKGluZGV4KX19fSxbX3ZtLl92KFwiIFwiK192bS5fcyhpdGVtLm5hbWUpK1wiIFwiKV0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi55Sf5Lqn57q/OlwiLFwicHJvcFwiOlwicHJvZHVjdFR5cGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnB0eXBlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkucHJvZHVjdFR5cGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInByb2R1Y3RUeXBlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkucHJvZHVjdFR5cGVcIn19LF92bS5fbCgoX3ZtLnByb2R1Y3RUeXBlTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5pZH19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIlwiLFwicHJvcFwiOlwicHJvZHVjdExpbmVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkucHJvZHVjdExpbmUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInByb2R1Y3RMaW5lXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkucHJvZHVjdExpbmVcIn19LF92bS5fbCgoX3ZtLlBMQ2hpbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnByb2R1Y3RMaW5lQ29kZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ucHJvZHVjdExpbmVOYW1lLFwidmFsdWVcIjppdGVtLnByb2R1Y3RMaW5lQ29kZX19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIui1t+Wni+mhuuW6j+WPt1wiLFwicHJvcFwiOlwiSG9zdFNOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTIwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIui1t+Wni+mhuuW6j+WPt1wiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLnu5PmnZ/pobrluo/lj7dcIixcInByb3BcIjpcIkhvc3RTTkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMjBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi57uT5p2f6aG65bqP5Y+3XCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5Ib3N0U05FbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5Lkhvc3RTTkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIktOUjpcIixcInByb3BcIjpcIktOUkJlZ2luXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LktOUkJlZ2luKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJLTlJCZWdpblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LktOUkJlZ2luXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiLVwiLFwicHJvcFwiOlwiS05SRW5kXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LktOUkVuZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiS05SRW5kXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuS05SRW5kXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5bqV55uY5Y+3OlwiLFwicHJvcFwiOlwiVklOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjAwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVklOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZJTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVklOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJWSU5FbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjAwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVklORW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWSU5FbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WSU5FbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLovablnovku6PnoIFcIixcInByb3BcIjpcInZlaGljbGVNb2RlbENvZGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlMX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInZlaGljbGVNb2RlbENvZGVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlXCJ9fSxfdm0uX2woKF92bS52ZWhpY2xlTW9kZWxMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5kaWNJdGVtTmFtZSxcInZhbHVlXCI6aXRlbS5kaWNJdGVtQ29kZX19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIueJiOacrFwiLFwicHJvcFwiOlwiVmVyc2lvblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WZXJzaW9uKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWZXJzaW9uXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVmVyc2lvblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuS4iue6v+aXpeacn1wifX0sW19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJzaXplXCI6XCJzbWFsbFwiLFwidmFsdWUtZm9ybWF0XCI6XCJ5eXl5LU1NLWRkXCIsXCJ0eXBlXCI6XCJkYXRlcmFuZ2VcIixcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihfdm0uT25saW5lVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLk9ubGluZVRpbWVWYWx1ZT0kJHZ9LGV4cHJlc3Npb246XCJPbmxpbmVUaW1lVmFsdWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLmjqXmlLbml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZFwiLFwidHlwZVwiOlwiZGF0ZXJhbmdlXCIsXCJyYW5nZS1zZXBhcmF0b3JcIjpcIi1cIixcInN0YXJ0LXBsYWNlaG9sZGVyXCI6XCLlvIDlp4vml6XmnJ9cIixcImVuZC1wbGFjZWhvbGRlclwiOlwi57uT5p2f5pel5pyfXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLlJlY2VpdmVUaW1lVmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uUmVjZWl2ZVRpbWVWYWx1ZT0kJHZ9LGV4cHJlc3Npb246XCJSZWNlaXZlVGltZVZhbHVlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCnmn6Xor6Lkv6Hmga8gXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wibGFiZWxcIjpcIuW6leebmOWPt1wiLFwicHJvcFwiOlwidmluIFwiLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwiZml4ZWRcIjpcIlwiLFwid2lkdGhcIjpcIjE4MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwibGluay10eXBlXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlRHJhd2VyT3BlbihzY29wZS5yb3cpfX19LFtfdm0uX3YoX3ZtLl9zKHNjb3BlLnJvdy52aW4pKV0pXX19XSl9KSxfdm0uX2woKF92bS5nZXREZWZhdWx0RmllbGQpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiBfYygnZWwtdGFibGUtY29sdW1uJyx7a2V5OmluZGV4LGF0dHJzOntcInByb3BcIjppdGVtLnByb3AsXCJsYWJlbFwiOml0ZW0ubGFiZWwsXCJtaW4td2lkdGhcIjppdGVtLndpZHRoLFwiZm9ybWF0dGVyXCI6X3ZtLmZpZWxkRm9ybWF0dGVyLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwic2hvdy1vdmVyZmxvdy10b29sdGlwXCI6XCJcIixcImd1dHRlclwiOjB9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImhlYWRlclwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW192bS5fdihcIiBcIitfdm0uX3Moc2NvcGUuY29sdW1uLmxhYmVsKStcIiBcIildfX1dLG51bGwsdHJ1ZSl9KX0pXSwyKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KSxfYygnaW1wb3J0RXhjZWwnLHtyZWY6XCJpbXBvcnRleGNlbFwiLGF0dHJzOntcInNob3dcIjpfdm0uc2hvd0V4Y2VsSW1wb3J0LFwiY3JtVHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJjbG9zZVwiOl92bS5pbXBvcnRFeGNlbERhdGF9fSldLDEpLF9jKCdlbC1kcmF3ZXInLHthdHRyczp7XCJ0aXRsZVwiOlwi5L+h5oGv6K+m57uG6aG1XCIsXCJzaXplXCI6XCI3NSVcIixcImRpcmVjdGlvblwiOlwicnRsXCIsXCJ2aXNpYmxlXCI6X3ZtLmRyYXdlcixcImJlZm9yZS1jbG9zZVwiOl92bS5oYW5kbGVEcmF3ZXJDbG9zZX0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kcmF3ZXI9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ0RldGFpbCcse3N0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi0zNXB4XCJ9LGF0dHJzOntcImN1c3RvbWVySW5mb3NcIjpfdm0uY3VzdG9tZXJJbmZvc319KV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIlxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgY29tcG9uZW50czoge30sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxvYWRpbmc6IGZhbHNlLCAvLyDliqDovb3liqjnlLtcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMDAsIC8vIOihqOeahOmrmOW6plxyXG4gICAgICB0b3RhbDogMFxyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAvLyDlsZXnpLpvcHRpb25z5LiL5ouJ6YCJ5oupXHJcbiAgICBzaG93T3B0aW9ucygpIHtcclxuICAgICAgaWYgKHRoaXMuaW5mb1R5cGUgPT0gJ3B1dEluUG9vbFJlbWluZCcpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRidXMub24oJ21lc3NhZ2Utc2Nyb2xsJywgdGFibGVIZWlnaHQgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHRcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy4kYnVzLm9uKCdleGFtaW5lLWhhbmRsZS1idXMnLCAoKSA9PiB7XHJcbiAgICB9KVxyXG5cclxuICAgIC8qKiDmjqfliLZ0YWJsZeeahOmrmOW6piAqL1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlSGVpZ2h0KClcclxuICAgIH1cclxuICB9LFxyXG5cclxuICBiZWZvcmVEZXN0cm95KCkge1xyXG4gICAgdGhpcy4kYnVzLm9mZignbWVzc2FnZS1zY3JvbGwnKVxyXG4gICAgdGhpcy4kYnVzLm9mZignZXhhbWluZS1oYW5kbGUtYnVzJylcclxuXHJcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NybS10YWJsZScpKSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcm0tdGFibGUnKS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOabtOaWsOihqOmrmFxyXG4gICAgICovXHJcbiAgICB1cGRhdGVUYWJsZUhlaWdodCgpIHtcclxuICAgICAgdmFyIG9mZnNldEhlaSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgdmFyIHJlbW92ZUhlaWdodCA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyT2JqKS5sZW5ndGggPiAwID8gMzYwIDogMzAwXHJcbiAgICAgIHRoaXMudGFibGVIZWlnaHQgPSBvZmZzZXRIZWkgLSByZW1vdmVIZWlnaHRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwiLFwicm93LWtleVwiOl92bS5nZXRSb3dLZXlzLFwiZXhwYW5kLXJvdy1rZXlzXCI6X3ZtLmV4cGFuZHN9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGljayxcImV4cGFuZC1jaGFuZ2VcIjpfdm0uZXhDaGFuZ2V9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZGVzY3JpcHRpb25cIixcImxhYmVsXCI6XCLmj4/ov7BcIn19KV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0t6YeN5aSN5oql5paH5p+l6K+iLeaYjue7huaVsOaNri0tPlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgPGVsLXRhYmxlXHJcbiAgICAgIHJlZj1cIm11bHRpcGxlVGFibGVcIlxyXG4gICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG4gICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgOmRhdGE9XCJsaXN0XCJcclxuICAgICAgOmhlaWdodD1cInRhYmxlSGVpZ2h0XCJcclxuICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgIHN0cmlwZVxyXG4gICAgICBib3JkZXJcclxuICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgQHNlbGVjdGlvbi1jaGFuZ2U9XCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2VcIlxyXG4gICAgICBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIlxyXG4gICAgICA6cm93LWtleT1cImdldFJvd0tleXNcIlxyXG4gICAgICA6ZXhwYW5kLXJvdy1rZXlzPVwiZXhwYW5kc1wiXHJcbiAgICAgIEBleHBhbmQtY2hhbmdlPVwiZXhDaGFuZ2VcIlxyXG4gICAgPlxyXG4gICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJwYXJ0Q29kZVwiIGxhYmVsPVwi5a6i5oi36Zu25Lu25Luj56CBXCI+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnROdW1cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuaVsOmHj1wiPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJkZXNjcmlwdGlvblwiIGxhYmVsPVwi5o+P6L+wXCI+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICA8L2VsLXRhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWZvb3RlclwiPlxyXG4gICAgICA8IS0tIOWIhumhteaOp+S7tiBzdHlsZT1cIm1hcmdpbi10b3A6IC0yNXB4O21hcmdpbi1ib3R0b206LTI1cHg7ZmxvYXQ6cmlnaHQ7XCItLT5cclxuICAgICAgPHBhZ2luYXRpb25cclxuICAgICAgICB2LXNob3c9XCJ0b3RhbENvdW50ID4gMFwiXHJcbiAgICAgICAgOnRvdGFsPVwidG90YWxDb3VudFwiXHJcbiAgICAgICAgOnBhZ2Uuc3luYz1cInBhZ2VcIlxyXG4gICAgICAgIDpsaW1pdC5zeW5jPVwibGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50XCJcclxuICAgICAgICBAcGFnaW5hdGlvbj1cImdldExpc3RcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjsgLy8gc2Vjb25kYXJ5IHBhY2thZ2UgYmFzZWQgb24gZWwtcGFnaW5hdGlvblxyXG5pbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5pbXBvcnQgQ1JNVGFibGVIZWFkIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NSTVRhYmxlSGVhZFwiO1xyXG5pbXBvcnQgeyBkb3dubG9hZEZpbGUgfSBmcm9tIFwiQC91dGlscy9jcm1pbmRleC5qc1wiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwic2VuZFVuc2V0dGxlZERpZmZSZXBvcnRcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgRGV0YWlsIH0sXHJcbiAgZGlyZWN0aXZlczogeyBwZXJtaXNzaW9uIH0sXHJcbiAgZmlsdGVyczoge1xyXG4gICAgSXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcbiAgICAgIC8v57+76K+R5piv5ZCm562+5a2XXHJcbiAgICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcclxuICAgICAgICB0cnVlOiBcIuaYr1wiLFxyXG4gICAgICAgIGZhbHNlOiBcIuWQplwiLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGN1c3RvbWVySW5mb3M6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNybVR5cGU6IFwic3RvY2tGaXNEaWZmUmVwb3J0XCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgLy/liY3nq6/lrprkuYnnmoTop4TliJnvvIzlkI7nq6/kuZ/mnInpqozor4FcclxuICAgICAgICBlcnBNYXRlcmlhbENvZGU6IFtcclxuICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IFwi5b+F6aG76L6T5YWl77yBXCIsIHRyaWdnZXI6IFwiYmx1clwiIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgZXhwYW5kczogW10sIC8v5Y+q5bGV5byA5LiA6KGM5pS+5YWl5b2T5YmN6KGMaWRcclxuICAgICAgZ2V0Um93S2V5czogKHJvdykgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3cuaWQ7IC8v6L+Z6YeM55yL6L+Z5LiA6KGM5Lit6ZyA6KaB5qC55o2u5ZOq5Liq5bGe5oCn5YC85pivaWRcclxuICAgICAgfSxcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIHBhcmVudElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtOiB7XHJcbiAgICAgICAgZGljRGV0YWlsSUQ6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXJJZDogXCJcIixcclxuICAgICAgICBwcm9qZWN0SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIEZpbHRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbG9naWM6IDAsXHJcbiAgICAgICAgICAgIGNvbHVtbjogXCJFbmFibGVkXCIsXHJcbiAgICAgICAgICAgIGFjdGlvbjogMCxcclxuICAgICAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxyXG4gICAgICAgICAgfSwgLy/pu5jorqTmn6Xor6Llj6/nlKjnmoRcclxuICAgICAgICBdLFxyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgaWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhZ2U6IDEsXHJcbiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzAsXHJcbiAgICAgIGlzRWRpdDogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIHdpbmRvdy5vbnJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIG9mZnNldEhlaSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIHNlbGYudGFibGVIZWlnaHQgPSBvZmZzZXRIZWkgLSAzMDtcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICBoYW5kbGVyKG5ld1ZhbCkge1xyXG4gICAgICAgIGlmIChuZXdWYWwgPT0gXCJcIiB8fCBuZXdWYWwgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgLy9UT0RPXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkID0gZWxlbWVudC5QYXJlbnRJZDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC8qKiDliJfooajlrZfmrrUgKi9cclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5oC75oiQ5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuICAgICAgICB3aWR0aDogMTYwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuaAu+aIkOeJiOacrOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwiZXJwQXNzZW1ibHlOYW1lXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE2MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZXhDaGFuZ2Uocm93LCByb3dMaXN0KSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgIGlmIChyb3dMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgIHRoYXQuZXhwYW5kcy5wdXNoKHJvdy5pZCk7IC8vIOWPquWxleW8gOW9k+WJjeihjGlkXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgY29uc29sZS5sb2coXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9cIiArIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5tMTAwUmVwZWF0UGFydHM7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHJlc2V0UXVlcnkoKSB7fSxcclxuXHJcbiAgICBzb3J0Q2hhbmdlKGRhdGEpIHtcclxuICAgICAgY29uc3QgeyBwcm9wLCBvcmRlciB9ID0gZGF0YTtcclxuICAgICAgaWYgKCFwcm9wIHx8ICFvcmRlcikge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJsZWZ0XCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLbooajlpLRzdHlsZSAqL1xyXG4gICAgaGVhZGVyUm93U3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWZjYTk4YzImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWZjYTk4YzImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI1ZmNhOThjMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3ph43lpI3miqXmlofkv6Hmga/pobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICAgIDxmbGV4Ym94IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgOm1vZGVsPVwibGlzdFF1ZXJ5XCJcclxuICAgICAgICAgIHJlZj1cInF1ZXJ5Rm9ybVwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICAgIDppbmxpbmU9XCJ0cnVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDmja7ph4fpm4bngrlcIiBwcm9wPVwicHJvZHVjdFR5cGVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJsaXN0UXVlcnkuY2hlY2tlZDFcIiA+TTEwMDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1jaGVja2JveCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmNoZWNrZWQyXCIgPlIxMDA8L2VsLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPiAtLT5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDmja7ph4fpm4bngrlcIiBwcm9wPVwiU3RhdGVcIiA+XHJcbiAgICAgICAgICAgIDxlbC1jaGVja2JveC1ncm91cCB2LW1vZGVsPVwibGlzdFF1ZXJ5LnN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gYmlsbFN0YXRlXCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImNoZWNrZWRMaXN0Q2hhbmdlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgPC9lbC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9lbC1jaGVja2JveC1ncm91cD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLnlJ/kuqfnur86XCIgcHJvcD1cInByb2R1Y3RUeXBlXCI+XHJcbiAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnByb2R1Y3RUeXBlXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE1cHhcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJwdHlwZXNlbGVjdENoYW5nZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gcHJvZHVjdFR5cGVMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIlwiIHByb3A9XCJwcm9kdWN0TGluZVwiPlxyXG4gICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5wcm9kdWN0TGluZVwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNXB4XCJcclxuICAgICAgICAgICAgICBAY2hhbmdlPVwidmFsdWVzZWxlY3RDaGFuZ2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIFBMQ2hpbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnByb2R1Y3RMaW5lTmFtZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi6LW35aeL6aG65bqP5Y+3XCIgcHJvcD1cIkhvc3RTTkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6LW35aeL6aG65bqP5Y+3XCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEyMHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi57uT5p2f6aG65bqP5Y+3XCIgcHJvcD1cIkhvc3RTTkVuZFwiPlxyXG4gICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5Lkhvc3RTTkVuZFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLnu5PmnZ/pobrluo/lj7dcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTIwcHhcIlxyXG4gICAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJLTlI6XCIgcHJvcD1cIktOUkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuS05SQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiLVwiIHByb3A9XCJLTlJFbmRcIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJFbmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiIHByb3A9XCJWSU5CZWdpblwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIlZJTkVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklORW5kXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei+S7o+eggVwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxDb2RlXCI+XHJcbiAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlXCJcclxuICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwidmFsdWVzZWxlY3RDaGFuZ2UxXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiB2ZWhpY2xlTW9kZWxMaXN0XCJcclxuICAgICAgICAgICAgOmtleT1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5kaWNJdGVtQ29kZVwiLz5cclxuICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LlZlaGljbGVNb2RlbENvZGVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPiAtLT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi54mI5pysXCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaAu+aIkOWQjeensFwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ9cIj5cclxuICAgICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cIk9ubGluZVRpbWVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgdmFsdWUtZm9ybWF0PVwieXl5eS1NTS1kZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGVyYW5nZVwiXHJcbiAgICAgICAgICAgICAgcmFuZ2Utc2VwYXJhdG9yPVwiLVwiXHJcbiAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgIGVuZC1wbGFjZWhvbGRlcj1cIue7k+adn+aXpeacn1wiXHJcbiAgICAgICAgICAgID48L2VsLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5o6l5pS25pel5pyfXCI+XHJcbiAgICAgICAgICAgIDxlbC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJSZWNlaXZlVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXJhbmdlXCJcclxuICAgICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgICBzdGFydC1wbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXHJcbiAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8IS0tIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLljZXmja7nirbmgIFcIiBwcm9wPVwiQmlsbFN0YXR1c1wiPlxyXG4gICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LkJpbGxTdGF0dXNcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDIwMHB4XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuacqumihuWPlueUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjFcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuW3sumihuWPlueUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjJcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuWujOaIkOeUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjNcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPiAtLT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgPuaQnOe0ojwvZWwtYnV0dG9uXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXJlZnJlc2hcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICBAY2xpY2s9XCJyZXNldFF1ZXJ5KCdxdWVyeUZvcm0nKVwiXHJcbiAgICAgICAgICAgICAgPumHjee9rjwvZWwtYnV0dG9uXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcclxuICAgICAgICAgICAgICBwbGFpblxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLWRvd25sb2FkXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTVweFwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRG93bmxvYWQoKVwiXHJcbiAgICAgICAgICAgICAgPuWvvOWHuihFeGNlbCnmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgIDwvZmxleGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImwtdGFibGVcIj5cclxuICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICA8ZWwtdGFibGVcclxuICAgICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICA6ZGF0YT1cImxpc3RcIlxyXG4gICAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICAgIDpoZWFkZXItY2VsbC1zdHlsZT1cImhlYWRlclJvd1N0eWxlXCJcclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIHN0cmlwZVxyXG4gICAgICAgIGJvcmRlclxyXG4gICAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICAgIEBzb3J0LWNoYW5nZT1cInNvcnRDaGFuZ2VcIlxyXG4gICAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgICBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbGFiZWw9XCLlupXnm5jlj7dcIlxyXG4gICAgICAgICAgcHJvcD1cInZpbiBcIlxyXG4gICAgICAgICAgc29ydGFibGU9XCJjdXN0b21cIlxyXG4gICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgZml4ZWRcclxuICAgICAgICAgIHdpZHRoPVwiMTgwcHhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5rLXR5cGVcIiBAY2xpY2s9XCJoYW5kbGVEcmF3ZXJPcGVuKHNjb3BlLnJvdylcIj57e1xyXG4gICAgICAgICAgICAgIHNjb3BlLnJvdy52aW5cclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgIDpwcm9wPVwiaXRlbS5wcm9wXCJcclxuICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIlxyXG4gICAgICAgICAgOmZvcm1hdHRlcj1cImZpZWxkRm9ybWF0dGVyXCJcclxuICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgIHNob3ctb3ZlcmZsb3ctdG9vbHRpcFxyXG4gICAgICAgICAgOmd1dHRlcj1cIjBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCIgc2xvdC1zY29wZT1cInNjb3BlXCI+XHJcbiAgICAgICAgICAgIHt7IHNjb3BlLmNvbHVtbi5sYWJlbCB9fVxyXG4gICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPC9lbC10YWJsZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgICAgPCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcbiAgICAgIDxwYWdpbmF0aW9uXHJcbiAgICAgICAgdi1zaG93PVwidG90YWxDb3VudCA+IDBcIlxyXG4gICAgICAgIDp0b3RhbD1cInRvdGFsQ291bnRcIlxyXG4gICAgICAgIDpwYWdlLnN5bmM9XCJwYWdlXCJcclxuICAgICAgICA6bGltaXQuc3luYz1cImxpc3RRdWVyeS5NYXhSZXN1bHRDb3VudFwiXHJcbiAgICAgICAgQHBhZ2luYXRpb249XCJnZXRMaXN0XCJcclxuICAgICAgLz5cclxuICAgICAgPCEtLSDlr7zlhaVFeGNlbOe7hOS7tiAtLT5cclxuICAgICAgPGltcG9ydEV4Y2VsXHJcbiAgICAgICAgcmVmPVwiaW1wb3J0ZXhjZWxcIlxyXG4gICAgICAgIDpzaG93PVwic2hvd0V4Y2VsSW1wb3J0XCJcclxuICAgICAgICA6Y3JtVHlwZT1cImNybVR5cGVcIlxyXG4gICAgICAgIEBjbG9zZT1cImltcG9ydEV4Y2VsRGF0YVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgPGVsLWRyYXdlclxyXG4gICAgICB0aXRsZT1cIuS/oeaBr+ivpue7humhtVwiXHJcbiAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICBkaXJlY3Rpb249XCJydGxcIlxyXG4gICAgICA6dmlzaWJsZS5zeW5jPVwiZHJhd2VyXCJcclxuICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgID5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICB2LWJpbmQ6Y3VzdG9tZXJJbmZvcz1cImN1c3RvbWVySW5mb3NcIlxyXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAtMzVweFwiXHJcbiAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZWwtZHJhd2VyPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tIFwidnVleFwiO1xyXG5pbXBvcnQgTG9ja3IgZnJvbSBcImxvY2tyXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgbWVzc2FnZV90YWJsZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9taXhpbnMvbWVzc2FnZV90YWJsZVwiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbC52dWVcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuXHJcbi8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcbmNvbnN0IGJvbVVuaXQgPSBbXHJcbiAgeyBrZXk6IDAsIGRpc3BsYXlfbmFtZTogXCJQQ1wiIH0sXHJcbiAgeyBrZXk6IDEsIGRpc3BsYXlfbmFtZTogXCJUT05cIiB9LFxyXG4gIHsga2V5OiAyLCBkaXNwbGF5X25hbWU6IFwiT3RoZXJcIiB9LFxyXG5dO1xyXG5jb25zdCBwcm9qZWN0VHlwZUtleVZhbHVlID0gYm9tVW5pdC5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XHJcbiAgYWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuICByZXR1cm4gYWNjO1xyXG59LCB7fSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJSZXBlYXRNMTAwXCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIGltcG9ydEV4Y2VsLCBEZXRhaWwgfSxcclxuICBkaXJlY3RpdmVzOiB7IHBlcm1pc3Npb24gfSxcclxuICBmaWx0ZXJzOiB7XHJcbiAgICBJc0N1c3RvbWVyU2lnbkZpbHRlcihzdGF0dXMpIHtcclxuICAgICAgLy/nv7vor5HmmK/lkKbnrb7lrZdcclxuICAgICAgY29uc3Qgc3RhdHVzTWFwID0ge1xyXG4gICAgICAgIHRydWU6IFwi5pivXCIsXHJcbiAgICAgICAgZmFsc2U6IFwi5ZCmXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBzdGF0dXNNYXBbc3RhdHVzXTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtaXhpbnM6IFttZXNzYWdlX3RhYmxlXSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JtVHlwZTogXCJib21kYXRhYmFzZVwiLFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgYmlsbFN0YXRlOiBbXHJcbiAgICAgICAgeyBpZDogMiwgbmFtZTogXCJSMTAwXCIgfSxcclxuICAgICAgICB7IGlkOiAzLCBuYW1lOiBcIk0xMDBcIiB9LFxyXG4gICAgICBdLFxyXG4gICAgICBpc1ZJTlNob3dTdGF0ZTpmYWxzZSxcclxuICAgICAgT25saW5lVGltZVZhbHVlOiBbXSxcclxuICAgICAgUmVjZWl2ZVRpbWVWYWx1ZTogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvc01COltdLFxyXG4gICAgICBjdXN0b21lckluZm9zWkhCOltdLFxyXG4gICAgICB2ZXJzaW9uTGlzdDogW10sIC8v54mI5pys5YiX6KGoXHJcbiAgICAgIHNlYXJjaENvbnRlbnQ6IFwiXCIsIC8vIOi+k+WFpeWGheWuuVxyXG4gICAgICBzaG93RXhjZWxJbXBvcnQ6IGZhbHNlLFxyXG4gICAgICBmb3JtOiB7fSxcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgbGlzdDogbnVsbCxcclxuICAgICAgdG90YWxDb3VudDogMCxcclxuICAgICAgbGlzdExvYWRpbmc6IHRydWUsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIGJvbUlkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyDpq5jnuqfmkJzntKJcclxuICAgICAgZmlsdGVyT2JqOiB7XHJcbiAgICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0UXVlcnk6IHtcclxuICAgICAgICBcclxuICAgICAgICBwcm9kdWN0VHlwZTogMSwgLy8xOumXqOadv++8mzI65p+x5oqk5p2/XHJcbiAgICAgICAgUHJvZHVjdExpbmU6IHVuZGVmaW5lZCxcclxuICAgICAgICBjaGVja2VkMTp0cnVlLFxyXG4gICAgICAgIGNoZWNrZWQyOnRydWUsXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBIb3N0U05CZWdpbjogdW5kZWZpbmVkLFxyXG4gICAgICAgIEhvc3RTTkVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZJTjogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZJTkJlZ2luOiB1bmRlZmluZWQsXHJcbiAgICAgICAgVklORW5kOiB1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUJlZ2luOiB1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFJlY2VpdmVUaW1lQmVnaW46IHVuZGVmaW5lZCxcclxuICAgICAgICBSZWNlaXZlVGltZUVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZlaGljbGVNb2RlbENvZGU6IHVuZGVmaW5lZCxcclxuICAgICAgICBWZXJzaW9uOiB1bmRlZmluZWQsXHJcbiAgICAgICAgS05SOiB1bmRlZmluZWQsXHJcbiAgICAgICAgc3RhdGU6IFtdLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgbGlzdFBMUXVlcnk6IHtcclxuICAgICAgICBCaWxsVHlwZTogMixcclxuICAgICAgICAvL1VzZXJJZDogdGhpcy51c2VyaW5mby5Vc2VySWQsXHJcbiAgICAgIH0sXHJcbiAgICAgICB2ZWhpY2xlTW9kZWxRdWVyeTp7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6XCLmtL7moLzovablnotcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2XHJcbiAgICAgICAgLy8gVmVoaWNsZU1vZGVsQ29kZWxpc3Q6W1xyXG4gICAgICAgIC8vICAge2lkOiAxLCBuYW1lOiBcIkM4XCJ9LFxyXG4gICAgICAgIC8vICAge2lkOiAyLCBuYW1lOiBcIkI4TFwifSxcclxuICAgICAgICAvLyAgIHtpZDogMywgbmFtZTogXCJDQ1wifSxcclxuICAgICAgICAvLyAgIHtpZDogNCwgbmFtZTogXCJCU01WXCJ9LFxyXG4gICAgICAgIC8vICAge2lkOiA1LCBuYW1lOiBcIkI5XCJ9LFxyXG4gICAgICAgIC8vICAgIHtpZDogNiwgbmFtZTogXCJRNVwifSxcclxuICAgICAgICAvLyBdLFxyXG4gICAgICAgIHByb2R1Y3RUeXBlTGlzdDogW1xyXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwi6Zeo5p2/XCIgfSxcclxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcIuafseaKpOadv1wiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIGJvbVVuaXQsXHJcbiAgICAgIFBMTGlzdDogW10sXHJcbiAgICAgIFBMQ2hpbGRMaXN0OiBbXSwgLy/nrZvpgInlkI7kuqfnur/kuIvmi4lcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBpc1Nob3dTdGF0ZTogdHJ1ZSxcclxuICAgICAgZGlhbG9nVGFibGVWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgdmVoaWNsZU1vZGVsTGlzdDpbXSwvL+i9puWei2xpc3RcclxuICAgICAgLy90YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDI2MCxcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdGhpcy4kbmV4dFRpY2soKCkgPT4geyBcclxuICAgICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgICAgbGV0IGJveEggPSB0aGlzLiRyZWZzLmJveC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIGJveEggLSA1NyAtIDc5Oy8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG4gICAgfSk7XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIHRoaXMuYmlsbFN0YXRlLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LnN0YXRlLnB1c2goZWxlbWVudC5pZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgIHRoaXMuZ2V0UHJvZHVjdExpbmUoKTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBnZXREZWZhdWx0RmllbGQoKSB7XHJcbiAgICAgIHZhciB0ZW1wc1RhYnMgPSBbXTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLmtYHmsLTlj7dcIiwgcHJvcDogXCJzZXJpYWxOdW1cIiwgd2lkdGg6IDEwMCB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLlpKfkvJfpobrluo/lj7dcIiwgcHJvcDogXCJob3N0U05cIiwgd2lkdGg6IDEyMCB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIktOUlwiLFxyXG4gICAgICAgIHByb3A6IFwia25yXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLlupXnm5jlj7dcIixcclxuICAgICAgICBwcm9wOiBcInZpblwiLFxyXG4gICAgICAgIHdpZHRoOiAxMzAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5LiK57q/5pe26Ze0XCIsXHJcbiAgICAgICAgcHJvcDogXCJvbmxpbmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmjqXmlLbml7bpl7RcIixcclxuICAgICAgICBwcm9wOiBcInJlY2VpdmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE4MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLovablnovku6PnoIFcIixcclxuICAgICAgICBwcm9wOiBcInZlaGljbGVNb2RlbENvZGVcIixcclxuICAgICAgICB3aWR0aDogMTIwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIueJiOacrFwiLFxyXG4gICAgICAgIHByb3A6IFwidmVyc2lvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5Lqn57q/XCIsXHJcbiAgICAgICAgcHJvcDogXCJwcm9kdWN0TGluZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5pWw5o2u6YeH6ZuG54K5XCIsXHJcbiAgICAgICAgcHJvcDogXCJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5Y2V5o2u54q25oCBXCIsIHByb3A6IFwiYmlsbFN0YXR1c1wiLCB3aWR0aDogMTIwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi6L2m5Z6L5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZWhpY2xlTW9kZWxOYW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gICAgLi4ubWFwR2V0dGVycyhbXCJ1c2VySW5mb1wiXSksIC8v6I635Y+W5b2T5YmN55So5oi35L+h5oGvXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAgICBzcyhkYXRhKSB7XHJcbiAgICAgIC8vYWxlcnQoZGF0YSk7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmFsdWVTZWxlY3QgPSBkYXRhO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvL+aKveWxiVxyXG4gICAgaGFuZGxlRHJhd2VyT3BlbihwYXJhbSkge1xyXG4gICAgICB0aGlzLmRyYXdlciA9IHRydWU7XHJcbiAgICAgIHZhciBwYXJlbnRJZCA9IHBhcmFtLmlkOyAvL+S8oOWFpeeahOaYr+aAu+aIkGlkXHJcbiAgICAgIHRoaXMuY3VzdG9tZXJJbmZvcyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBQYXJlbnRJZDogcGFyZW50SWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVEcmF3ZXJDbG9zZShkb25lKSB7XHJcbiAgICAgIGRvbmUoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5a+85Ye65Yqf6IO9ICovXHJcbiAgICBoYW5kbGVEb3dubG9hZCgpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIC8vIGlmICh0aGlzLk9ubGluZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgICAvLyAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVCZWdpbiA9IHRoaXMuT25saW5lVGltZVZhbHVlWzBdO1xyXG4gICAgICAvLyAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAodGhpcy5SZWNlaXZlVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVCZWdpbiA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXTtcclxuICAgICAgLy8gICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgLy8gfVxyXG4gICAgICBpZiAodGhpcy5PbmxpbmVUaW1lVmFsdWUgIT0gW10pIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lQmVnaW4gPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVswXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLlJlY2VpdmVUaW1lVmFsdWUgIT0gW10pIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUJlZ2luID0gdGhpcy5SZWNlaXZlVGltZVZhbHVlXHJcbiAgICAgICAgICA/IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMV0gfHwgdW5kZWZpbmVkXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIumHjeWkjeaKpeaWh+WvvOWHuuadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9leHBvcnRcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgbGV0IGZpbGVuYW1lID0gcmVzLml0ZW07XHJcbiAgICAgICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgICAuQm9sYkdldHMoXCIvYXBpL25ld2ppdC9leGNsdWRlLXBhcnQtY2ZnL2Rvd25sb2FkL1wiICsgZmlsZW5hbWUpXHJcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWxlbmFtZS5pbmRleE9mKFwiX1wiKSAhPSAtMSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRvd25OYW1lID1cclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoMCwgZmlsZW5hbWUubGFzdEluZGV4T2YoXCJfXCIpKSArXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKGZpbGVuYW1lLmxhc3RJbmRleE9mKFwiLlwiKSk7XHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGUocmVzcG9uc2UsIGRvd25OYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyrljZXmja7nirbmgIHlj5jmm7QgKi9cclxuICAgICBjaGVja2VkTGlzdENoYW5nZShpbmRleCkge1xyXG4gICAgICBpZiAodGhpcy5saXN0UXVlcnkuc3RhdGUubGVuZ3RoIDw9IDEpIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZS5wdXNoKHRoaXMuYmlsbFN0YXRlW2luZGV4XS5pZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuc3RhdGUgPSBbXTtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZS5wdXNoKHRoaXMuYmlsbFN0YXRlW2luZGV4XS5pZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5saXN0UXVlcnkuc3RhdGVbMF09PVwiM1wiKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5pc1ZJTlNob3dTdGF0ZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5pc1ZJTlNob3dTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZSA9IFtdO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZSA9IFtdO1xyXG4gICAgICB0aGlzLiRyZWZzW3JlZk5hbWVdLnJlc2V0RmllbGRzKCk7XHJcbiAgICAgIHRoaXMuaGFuZGxlUXVlcnkoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcbiAgICBoYW5kbGVRdWVyeSgpIHtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gMTtcclxuICAgICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgfSxcclxuICAgIHNlbGVjdFZhbHVlKHBhcmFtcykge1xyXG4gICAgICAvL+eJiOacrOS4i+aLiemAieaLqVxyXG4gICAgICB0aGlzLnZlcnNpb25WYWx1ZSA9IHBhcmFtcy52YWx1ZTtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgIC8vIHRoaXMuZ2V0TGlzdE0xMDAoKTtcclxuICAgICAgLy8gIHRoaXMuZ2V0TGlzdFIxMDAoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc2VsZWN0T3B0aW9uc0NoYW5nZShpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAvLyB0aGlzLmdldExpc3RNMTAwKCk7XHJcbiAgICAgIC8vICB0aGlzLmdldExpc3RSMTAwKCk7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICAvL3RoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKiog5Yi35paw5YiX6KGoICovXHJcbiAgICBoYW5kbGVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlICE9PSBcImVkaXRcIikge1xyXG4gICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAgIC8vIHRoaXMuZ2V0TGlzdE0xMDAoKTtcclxuICAgICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuICAgICAgICByZXR1cm4geyAxOiBcIuacqumihuWPlueUn+S6p+S7u+WKoVwiLCAyOiBcIuW3sumihuWPlueUn+S6p+S7u+WKoVwiLCAzOiBcIuWujOaIkOeUn+S6p+S7u+WKoVwiIH1bXHJcbiAgICAgICAgICByb3dbY29sdW1uLnByb3BlcnR5XVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PSBcIm9ubGluZVRpbWVcIiB8fCBjb2x1bW4ucHJvcGVydHkgPT0gXCJyZWNlaXZlVGltZVwiKSB7XHJcbiAgICAgICAgdmFyIGRhdGUgPSByb3dbY29sdW1uLnByb3BlcnR5XTtcclxuICAgICAgICBpZiAoZGF0ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIik7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJvd1tjb2x1bW4ucHJvcGVydHldIHx8IFwiLS1cIjtcclxuICAgIH0sXHJcbiAgICByb2xlRmlsdGVyKHR5cGUpIHtcclxuICAgICAgcmV0dXJuIHByb2plY3RUeXBlS2V5VmFsdWVbdHlwZV07XHJcbiAgICAgIFxyXG4gICAgfSxcclxuIFxyXG4gIGdldExpc3QoZGF0YSl7XHJcbiAgICAgICAgXHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmIChkYXRhICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIGRhdGEubGltaXQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gKHRoaXMucGFnZSAtIDEpICogMTU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuT25saW5lVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUJlZ2luID0gdGhpcy5PbmxpbmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMuT25saW5lVGltZVZhbHVlWzFdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vICBpZiAodGhpcy52YWx1ZVNlbGVjdCAhPSBcIlwiKSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuVmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMudmFsdWVTZWxlY3Q7XHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuVmVoaWNsZU1vZGVsQ29kZSA9IFwiXCI7XHJcbiAgICAgIC8vIH1cclxuICAgICAgaWYgKHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lQmVnaW4gPSB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVFbmQgPSB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMV07XHJcbiAgICAgIH1cclxuICAgIFxyXG5pZih0aGlzLmxpc3RRdWVyeS5zdGF0ZVswXSA9PSBcIjJcIilcclxue1xyXG4gIHRoaXMuZGlhbG9nVGFibGVWaXNpYmxlID0gZmFsc2U7XHJcbiAgY29uc29sZS5sb2coXCI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTVcIitKU09OLnN0cmluZ2lmeSh0aGlzLmxpc3RRdWVyeSkpO1xyXG4gICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3JlcGVhdC1yMTAwL2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuZWxzZVxyXG57XHJcbiAgdGhpcy5kaWFsb2dUYWJsZVZpc2libGUgPSB0cnVlO1xyXG50aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvcmVwZWF0LW0xMDAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuICAgIC8vICBpZiAodGhpcy5iaWxsU3RhdGU9PT0gMikge1xyXG4gICAgICAgXHJcbiAgICAvLyAgIHRoaXMuJGF4aW9zXHJcbiAgICAvLyAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtcjEwMC9saXN0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgLy8gICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAvLyAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXNwb25zZS50b3RhbENvdW50O1xyXG4gICAgLy8gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgIH0sIDUwMCk7XHJcbiAgICAvLyAgICAgfSlcclxuICAgIC8vICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gIH1cclxuICAgIC8vICBlbHNlIGlmKHRoaXMuYmlsbFN0YXRlID09PSAzKXtcclxuICAgICBcclxuICAgIC8vICAgdGhpcy4kYXhpb3NcclxuICAgIC8vICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3JlcGVhdC1tMTAwL2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAvLyAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgIC8vICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAvLyAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgIC8vICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgfSwgNTAwKTtcclxuICAgIC8vICAgICB9KVxyXG4gICAgLy8gICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyAgfVxyXG4gIC8vfVxyXG4gICAgXHJcbiAgIFxyXG4gICAgfSxcclxuICAgIC8vIGdldExpc3QoZGF0YSkge1xyXG4gICAgLy8gICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5Ta2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiBkYXRhLmxpbWl0O1xyXG4gICAgLy8gICB9IGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIDE1O1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGlmICh0aGlzLk9ubGluZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVCZWdpbiA9IHRoaXMuT25saW5lVGltZVZhbHVlWzBdO1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBpZiAodGhpcy5SZWNlaXZlVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAvLyAgICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVCZWdpbiA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXTtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICAgaWYgKHRoaXMubGlzdFF1ZXJ5LnN0YXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5iaWxsU3RhdHVzID0gdGhpcy5saXN0UXVlcnkuc3RhdGVbMF07XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgIC8vdGhpcy5saXN0UXVlcnlMaXN0LlByb2R1Y3RMaW5lID0gdGhpcy5saXN0UXVlcnkucHJvZHVjdExpbmU7XHJcbiAgICAvLyAgIHRoaXMuJGF4aW9zXHJcbiAgICAvLyAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9saXN0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgLy8gICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAvLyAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXNwb25zZS50b3RhbENvdW50O1xyXG4gICAgLy8gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgIH0sIDUwMCk7XHJcbiAgICAvLyAgICAgfSlcclxuICAgIC8vICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfSxcclxuICAgIGhhbmRsZUZpbHRlcigpIHtcclxuICAgICB0aGlzLmRpYWxvZ1RhYmxlVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgfSxcclxuICAgICAgLy/kuqfnur/nsbvlnovlj5jmm7RcclxuICAgIHB0eXBlc2VsZWN0Q2hhbmdlKCkge1xyXG4gICAgICBkZWJ1Z2dlclxyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyXCIrdGhpcy5saXN0UXVlcnkucHJvZHVjdFR5cGUpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKHUpID0+IHUucHJvZHVjdFR5cGUgPT09IHBhcnNlSW50KHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlKVxyXG4gICAgICApLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICByZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUgLSBiLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuUExMaXN0KVxyXG4gICAgICB9LFxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UHJvZHVjdExpbmUoKSB7XHJcbiAgICAgIC8vZGVidWdnZXJcclxuICAgICAgLy9jb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJJbmZvKSk7XHJcbiAgICAgIHRoaXMubGlzdFBMUXVlcnkuVXNlcklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5saXN0UExRdWVyeS5Vc2VySWR0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZHRoaXMubGlzdFBMUXVlcnkuVXNlcklkdGhpcy5saXN0UExRdWVyeS5Vc2VySWR0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZFwiK3RoaXMubGlzdFBMUXVlcnkuVXNlcklkKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3Byb2R1Y3QtbGluZS9saXN0XCIsIHRoaXMubGlzdFBMUXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLojrflj5bkuqfnur/mlbDmja7vvJpcIitKU09OLnN0cmluZ2lmeShyZXNwb25zZS5pdGVtKSk7XHJcbiAgICAgICAgICB0aGlzLlBMTGlzdCA9IHJlc3BvbnNlLml0ZW07XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICh1KSA9PiB1LnByb2R1Y3RUeXBlID09PSBwYXJzZUludCh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSlcclxuICAgICAgICAgICkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUgLSBiLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIy6I635Y+W5Lqn57q/5pWw5o2u77yaXCIrSlNPTi5zdHJpbmdpZnkodGhpcy5QTENoaWxkTGlzdCkpO1xyXG4gICAgICAgICAgdGhpcy5saXN0UXVlcnkucHJvZHVjdExpbmUgPSB0aGlzLlBMQ2hpbGRMaXN0WzBdLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgICAgIGlmICh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgIC8v5oqK5Lqn57q/5YC85Lyg5Yiw5a2Q57uE5Lu2XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvc01CID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFByaW50VHlwZTogMSxcclxuICAgICAgICAgICAgICAgIFByb2R1Y3RMaW5lOiB0aGlzLlBMQ2hpbGRMaXN0WzBdLnByb2R1Y3RMaW5lQ29kZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAgICAgLy8gdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMTGlzdClcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICB9LFxyXG4gICAgIHZhbHVlc2VsZWN0Q2hhbmdlMSgpe30sXHJcblxyXG4gICAgIHZhbHVlc2VsZWN0Q2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVySW5mb3NNQiA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbWVySW5mb3NaSEIgPSBbXTtcclxuICAgICAgaWYgKHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlID09PSAxKSB7XHJcbiAgICAgICAgLy/miorkuqfnur/lgLzkvKDliLDlrZDnu4Tku7ZcclxuICAgICAgICB0aGlzLmN1c3RvbWVySW5mb3NNQiA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgUHJpbnRUeXBlOiAxLFxyXG4gICAgICAgICAgICBQcm9kdWN0TGluZTogdmFsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSA9PT0gMikge1xyXG4gICAgICAgIC8v5oqK5Lqn57q/5YC85Lyg5Yiw5a2Q57uE5Lu2XHJcbiAgICAgICAgdGhpcy5jdXN0b21lckluZm9zWkhCID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBQcmludFR5cGU6IDEsXHJcbiAgICAgICAgICAgIFByb2R1Y3RMaW5lOiB2YWwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgfSxcclxuXHJcbiAgICAgZ2V0dmVoaWNsZU1vZGVsKClcclxuICAgIHtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgICBcIi9hcGkvbmV3aml0L2RpYy9saXN0XCIsdGhpcy52ZWhpY2xlTW9kZWxRdWVyeVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnZlaGljbGVNb2RlbExpc3QgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJyaWdodFwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1ZmNjMzU5JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM1ZmNjMzU5Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMzVmY2MzNTlcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a988\n')},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},d8a5:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8b51");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzExNTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBIiwiZmlsZSI6ImQ4YTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P3JlZi0tOS1vbmVPZi0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tOS1vbmVPZi0xLTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzVmY2MzNTkmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d8a5\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e1b4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT8wNWM2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImUxYjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///e1b4\n")},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5e9b71b5"],{"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},"4e53":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e1b4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT8zMzg2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI0ZTUzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01ZmNhOThjMiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4e53\n')},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8b51":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlP2Q1YTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiOGI1MS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8b51\n")},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},a988:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=template&id=35fcc359&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"数据采集点","prop":"State"}},[_c(\'el-checkbox-group\',{model:{value:(_vm.listQuery.state),callback:function ($$v) {_vm.$set(_vm.listQuery, "state", $$v)},expression:"listQuery.state"}},_vm._l((_vm.billState),function(item,index){return _c(\'el-checkbox\',{key:item.id,attrs:{"label":item.id},on:{"change":function($event){return _vm.checkedListChange(index)}}},[_vm._v(" "+_vm._s(item.name)+" ")])}),1)],1),_c(\'el-form-item\',{attrs:{"label":"生产线:","prop":"productType"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.ptypeselectChange},model:{value:(_vm.listQuery.productType),callback:function ($$v) {_vm.$set(_vm.listQuery, "productType", $$v)},expression:"listQuery.productType"}},_vm._l((_vm.productTypeList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.name,"value":item.id}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"","prop":"productLine"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.productLine),callback:function ($$v) {_vm.$set(_vm.listQuery, "productLine", $$v)},expression:"listQuery.productLine"}},_vm._l((_vm.PLChildList),function(item){return _c(\'el-option\',{key:item.productLineCode,attrs:{"label":item.productLineName,"value":item.productLineCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"起始顺序号","prop":"HostSNBegin"}},[_c(\'el-input\',{staticStyle:{"width":"120px"},attrs:{"placeholder":"起始顺序号","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNBegin", $$v)},expression:"listQuery.HostSNBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"结束顺序号","prop":"HostSNEnd"}},[_c(\'el-input\',{staticStyle:{"width":"120px"},attrs:{"placeholder":"结束顺序号","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNEnd", $$v)},expression:"listQuery.HostSNEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"车型代码","prop":"vehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange1},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成名称","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"240px"},attrs:{"size":"small","value-format":"yyyy-MM-dd","type":"daterange","range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.OnlineTimeValue),callback:function ($$v) {_vm.OnlineTimeValue=$$v},expression:"OnlineTimeValue"}})],1),_c(\'el-form-item\',{attrs:{"label":"接收日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"240px"},attrs:{"size":"small","value-format":"yyyy-MM-dd","type":"daterange","range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.ReceiveTimeValue),callback:function ($$v) {_vm.ReceiveTimeValue=$$v},expression:"ReceiveTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel)查询信息 ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"底盘号","prop":"vin ","sortable":"custom","align":"center","fixed":"","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.vin))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'importExcel\',{ref:"importexcel",attrs:{"show":_vm.showExcelImport,"crmType":_vm.crmType},on:{"close":_vm.importExcelData}})],1),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=template&id=35fcc359&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.sort.js\nvar es6_array_sort = __webpack_require__("55dd");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\nvar objectSpread2 = __webpack_require__("5530");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__("456d");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/mixins/message_table.js\n\n\n/* harmony default export */ var message_table = ({\n components: {},\n data: function data() {\n return {\n loading: false,\n // 加载动画\n tableHeight: document.documentElement.clientHeight - 300,\n // 表的高度\n total: 0\n };\n },\n computed: {\n // 展示options下拉选择\n showOptions: function showOptions() {\n if (this.infoType == \'putInPoolRemind\') {\n return false;\n }\n\n return true;\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$bus.on(\'message-scroll\', function (tableHeight) {\n _this.tableHeight = tableHeight;\n });\n this.$bus.on(\'examine-handle-bus\', function () {});\n /** 控制table的高度 */\n\n window.onresize = function () {\n _this.updateTableHeight();\n };\n },\n beforeDestroy: function beforeDestroy() {\n this.$bus.off(\'message-scroll\');\n this.$bus.off(\'examine-handle-bus\');\n\n if (document.getElementById(\'crm-table\')) {\n document.getElementById(\'crm-table\').removeEventListener(\'click\', function (e) {\n e.stopPropagation();\n });\n }\n },\n methods: {\n /**\r\n * 更新表高\r\n */\n updateTableHeight: function updateTableHeight() {\n var offsetHei = document.documentElement.clientHeight;\n var removeHeight = Object.keys(this.filterObj).length > 0 ? 360 : 300;\n this.tableHeight = offsetHei - removeHeight;\n }\n }\n});\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=template&id=5fca98c2&scoped=true&\nvar detailvue_type_template_id_5fca98c2_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":"","row-key":_vm.getRowKeys,"expand-row-keys":_vm.expands},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick,"expand-change":_vm.exChange}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"描述"}})],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_5fca98c2_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=template&id=5fca98c2&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n expands: [],\n //只展开一行放入当前行id\n getRowKeys: function getRowKeys(row) {\n return row.id; //这里看这一行中需要根据哪个属性值是id\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 160\n }); // tempsTabs.push({\n // label: "总成版本号",\n // prop: "erpAssemblyName",\n // width: 160,\n // });\n\n return tempsTabs;\n }\n },\n methods: {\n exChange: function exChange(row, rowList) {\n this.loading = true;\n var that = this;\n\n if (rowList.length) {\n that.expands = [];\n\n if (row) {\n that.expands.push(row.id); // 只展开当前行id\n }\n } else {\n that.expands = [];\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/repeat-m100/" + this.customerInfo.parentId).then(function (response) {\n _this2.list = response.item.m100RepeatParts;\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var repeatR100_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue?vue&type=style&index=0&id=5fca98c2&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_5fca98c2_lang_scss_scoped_true_ = __webpack_require__("4e53");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n repeatR100_detailvue_type_script_lang_js_,\n detailvue_type_template_id_5fca98c2_scoped_true_render,\n detailvue_type_template_id_5fca98c2_scoped_true_staticRenderFns,\n false,\n null,\n "5fca98c2",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var repeatR100vue_type_script_lang_js_ = ({\n name: "RepeatM100",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n mixins: [message_table],\n data: function data() {\n var _ref;\n\n return _ref = {\n crmType: "bomdatabase",\n customerInfos: [],\n billState: [{\n id: 2,\n name: "R100"\n }, {\n id: 3,\n name: "M100"\n }],\n isVINShowState: false,\n OnlineTimeValue: [],\n ReceiveTimeValue: [],\n versionValue: "",\n customerInfosMB: [],\n customerInfosZHB: [],\n versionList: [],\n //版本列表\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n productType: 1,\n //1:门板;2:柱护板\n ProductLine: undefined,\n checked1: true,\n checked2: true,\n SkipCount: 0,\n MaxResultCount: 15,\n HostSNBegin: undefined,\n HostSNEnd: undefined,\n VIN: undefined,\n VINBegin: undefined,\n VINEnd: undefined,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n ReceiveTimeBegin: undefined,\n ReceiveTimeEnd: undefined,\n VehicleModelCode: undefined,\n Version: undefined,\n KNR: undefined,\n state: []\n },\n listPLQuery: {\n BillType: 2 //UserId: this.userinfo.UserId,\n\n },\n vehicleModelQuery: {\n dicTypeName: "格拉默车型"\n },\n page: 1,\n // 显示搜索条件\n // VehicleModelCodelist:[\n // {id: 1, name: "C8"},\n // {id: 2, name: "B8L"},\n // {id: 3, name: "CC"},\n // {id: 4, name: "BSMV"},\n // {id: 5, name: "B9"},\n // {id: 6, name: "Q5"},\n // ],\n productTypeList: [{\n id: 1,\n name: "门板"\n }, {\n id: 2,\n name: "柱护板"\n }],\n showSearch: true,\n bomUnit: bomUnit,\n PLList: [],\n PLChildList: [],\n //筛选后产线下拉\n multipleSelection: []\n }, Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "isShowState", true), Object(defineProperty["a" /* default */])(_ref, "dialogTableVisible", false), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), _ref;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n });\n },\n created: function created() {\n var _this2 = this;\n\n //this.getList();\n this.billState.forEach(function (element, index) {\n if (index === 0) {\n _this2.listQuery.state.push(element.id);\n }\n });\n this.getvehicleModel();\n this.getProductLine();\n },\n computed: Object(objectSpread2["a" /* default */])({\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "流水号",\n prop: "serialNum",\n width: 100\n });\n tempsTabs.push({\n label: "大众顺序号",\n prop: "hostSN",\n width: 120\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 120\n });\n tempsTabs.push({\n label: "底盘号",\n prop: "vin",\n width: 130\n });\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "接收时间",\n prop: "receiveTime",\n width: 180\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "产线",\n prop: "productLine",\n width: 150\n });\n tempsTabs.push({\n label: "数据采集点",\n prop: "",\n width: 150\n });\n tempsTabs.push({\n label: "单据状态",\n prop: "billStatus",\n width: 120\n });\n tempsTabs.push({\n label: "车型名称",\n prop: "vehicleModelName",\n width: 120\n });\n return tempsTabs;\n }\n }, Object(vuex_esm["b" /* mapGetters */])(["userInfo"])),\n methods: {\n ss: function ss(data) {\n //alert(data);\n //版本下拉选择\n this.valueSelect = data;\n this.getList();\n },\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //传入的是总成id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this3 = this;\n\n this.listLoading = true; // if (this.OnlineTimeValue != []) {\n // this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n // this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n // }\n // if (this.ReceiveTimeValue != []) {\n // this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n // this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n // }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue ? this.OnlineTimeValue[0] || undefined : undefined;\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue ? this.OnlineTimeValue[1] || undefined : undefined;\n }\n\n if (this.ReceiveTimeValue != []) {\n this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue ? this.ReceiveTimeValue[0] || undefined : undefined;\n this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue ? this.ReceiveTimeValue[1] || undefined : undefined;\n }\n\n console.log("重复报文导出条件:" + JSON.stringify(this.listQuery));\n this.$axios.posts("/api/newjit/repeat-m100/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this3.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this3.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this3.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this3.listLoading = false;\n }).catch(function () {\n _this3.listLoading = false;\n });\n });\n },\n\n /*单据状态变更 */\n checkedListChange: function checkedListChange(index) {\n if (this.listQuery.state.length <= 1) {\n this.listQuery.state.push(this.billState[index].id);\n } else {\n this.listQuery.state = [];\n this.listQuery.state.push(this.billState[index].id);\n }\n\n if (this.listQuery.state[0] == "3") {\n this.isVINShowState = true;\n } else {\n this.isVINShowState = false;\n }\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.OnlineTimeValue = [];\n this.ReceiveTimeValue = [];\n this.listQuery.state = [];\n this.$refs[refName].resetFields();\n this.handleQuery();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1; //this.getList();\n // this.getListM100();\n // this.getListR100();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList(); // this.getListM100();\n // this.getListR100();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 1: "未领取生产任务",\n 2: "已领取生产任务",\n 3: "完成生产任务"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this4 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n } // if (this.valueSelect != "") {\n // this.listQuery.VehicleModelCode = this.valueSelect;\n // } else {\n // this.listQuery.VehicleModelCode = "";\n // }\n\n\n if (this.ReceiveTimeValue != []) {\n this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n }\n\n if (this.listQuery.state[0] == "2") {\n this.dialogTableVisible = false;\n console.log("555555555555555555555555555555" + JSON.stringify(this.listQuery));\n this.$axios.gets("/api/newjit/repeat-r100/list", this.listQuery).then(function (response) {\n _this4.list = response.items;\n _this4.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this4.listLoading = false;\n }, 500);\n }).catch(function () {\n _this4.listLoading = false;\n });\n } else {\n this.dialogTableVisible = true;\n this.$axios.gets("/api/newjit/repeat-m100/list", this.listQuery).then(function (response) {\n _this4.list = response.items;\n _this4.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this4.listLoading = false;\n }, 500);\n }).catch(function () {\n _this4.listLoading = false;\n });\n } // if (this.billState=== 2) {\n // this.$axios\n // .gets("/api/newjit/repeat-r100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // }\n // else if(this.billState === 3){\n // this.$axios\n // .gets("/api/newjit/repeat-m100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // }\n //}\n\n },\n // getList(data) {\n // this.listLoading = true;\n // if (data != undefined) {\n // this.listQuery.SkipCount = (this.page - 1) * data.limit;\n // } else {\n // this.listQuery.SkipCount = (this.page - 1) * 15;\n // }\n // if (this.OnlineTimeValue != []) {\n // this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0];\n // this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1];\n // }\n // if (this.ReceiveTimeValue != []) {\n // this.listQuery.ReceiveTimeBegin = this.ReceiveTimeValue[0];\n // this.listQuery.ReceiveTimeEnd = this.ReceiveTimeValue[1];\n // }\n // if (this.listQuery.state !== undefined) {\n // this.listQuery.billStatus = this.listQuery.state[0];\n // }\n // //this.listQueryList.ProductLine = this.listQuery.productLine;\n // this.$axios\n // .gets("/api/newjit/repeat-m100/list", this.listQuery)\n // .then((response) => {\n // this.list = response.items;\n // this.totalCount = response.totalCount;\n // setTimeout(() => {\n // //大数据量加载时\n // this.listLoading = false;\n // }, 500);\n // })\n // .catch(() => {\n // this.listLoading = false;\n // });\n // },\n handleFilter: function handleFilter() {\n this.dialogTableVisible = false;\n this.page = 1;\n this.getList(); // this.getListM100();\n // this.getListR100();\n },\n //产线类型变更\n ptypeselectChange: function ptypeselectChange() {\n var _this5 = this;\n\n debugger;\n this.$forceUpdate(); //console.log("222222222222222222222222222222222222222222"+this.listQuery.productType);\n\n this.listQuery.productLine = "";\n this.PLChildList = this.PLList.filter(function (u) {\n return u.productType === parseInt(_this5.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n console.log(this.PLList);\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n getProductLine: function getProductLine() {\n var _this6 = this;\n\n //debugger\n //console.log(JSON.stringify(this.userInfo));\n this.listPLQuery.UserId = this.userInfo.userId;\n console.log("this.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserIdthis.listPLQuery.UserId" + this.listPLQuery.UserId);\n this.$axios.gets("/api/newjit/product-line/list", this.listPLQuery).then(function (response) {\n //console.log("获取产线数据:"+JSON.stringify(response.item));\n _this6.PLList = response.item;\n _this6.PLChildList = _this6.PLList.filter(function (u) {\n return u.productType === parseInt(_this6.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n console.log("2222222获取产线数据:" + JSON.stringify(_this6.PLChildList));\n _this6.listQuery.productLine = _this6.PLChildList[0].productLineCode;\n\n if (_this6.listQuery.productLine != "") {\n //把产线值传到子组件\n _this6.customerInfosMB = [{\n PrintType: 1,\n ProductLine: _this6.PLChildList[0].productLineCode\n }];\n }\n\n _this6.getList(); // this.getListM100();\n // this.getListR100();\n //console.log(this.PLList)\n\n }).catch(function () {});\n },\n valueselectChange1: function valueselectChange1() {},\n valueselectChange: function valueselectChange(val) {\n this.$forceUpdate();\n this.customerInfosMB = [];\n this.customerInfosZHB = [];\n\n if (this.listQuery.productType === 1) {\n //把产线值传到子组件\n this.customerInfosMB = [{\n PrintType: 1,\n ProductLine: val\n }];\n }\n\n if (this.listQuery.productType === 2) {\n //把产线值传到子组件\n this.customerInfosZHB = [{\n PrintType: 1,\n ProductLine: val\n }];\n }\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n getvehicleModel: function getvehicleModel() {\n var _this7 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this7.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_repeatR100vue_type_script_lang_js_ = (repeatR100vue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue?vue&type=style&index=0&id=35fcc359&lang=scss&scoped=true&\nvar repeatR100vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true_ = __webpack_require__("d8a5");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/repeatR100/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar repeatR100_component = Object(componentNormalizer["a" /* default */])(\n basedate_repeatR100vue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "35fcc359",\n null\n \n)\n\n/* harmony default export */ var repeatR100 = __webpack_exports__["default"] = (repeatR100_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzFmNTkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL21peGlucy9tZXNzYWdlX3RhYmxlLmpzP2Y1YjEiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2RldGFpbC52dWU/YzBhMCIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2RldGFpbC52dWU/MTk1ZiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT80MzA1Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvcmVwZWF0UjEwMC9kZXRhaWwudnVlPzJlZmQiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvcmVwZWF0UjEwMC9pbmRleC52dWU/NjNlZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzM2ZTIiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9yZXBlYXRSMTAwL2luZGV4LnZ1ZT8zNmY1Il0sIm5hbWVzIjpbImNvbXBvbmVudHMiLCJkYXRhIiwibG9hZGluZyIsInRhYmxlSGVpZ2h0IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJ0b3RhbCIsImNvbXB1dGVkIiwic2hvd09wdGlvbnMiLCJpbmZvVHlwZSIsIm1vdW50ZWQiLCIkYnVzIiwib24iLCJ3aW5kb3ciLCJvbnJlc2l6ZSIsInVwZGF0ZVRhYmxlSGVpZ2h0IiwiYmVmb3JlRGVzdHJveSIsIm9mZiIsImdldEVsZW1lbnRCeUlkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJtZXRob2RzIiwib2Zmc2V0SGVpIiwicmVtb3ZlSGVpZ2h0IiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlck9iaiIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsT0FBTyxnQ0FBZ0MsMEJBQTBCLE9BQU8scURBQXFELHNDQUFzQywrQkFBK0IsNkNBQTZDLHlCQUF5QixtQkFBbUIsZ0JBQWdCLEtBQUssMEJBQTBCLHNDQUFzQyxzQ0FBc0MsNEJBQTRCLE9BQU8scUNBQXFDLGtCQUFrQixhQUFhLHNCQUFzQixRQUFRLG1EQUFtRCxLQUFLLCtCQUErQixRQUFRLDJEQUEyRCw0Q0FBNEMscUNBQXFDLDZDQUE2Qyx1QkFBdUIsbUJBQW1CLG1DQUFtQyxFQUFFLDRCQUE0QixPQUFPLGlDQUFpQyxrQkFBa0IsYUFBYSxzQkFBc0IsUUFBUSxtREFBbUQsS0FBSywrQkFBK0IsUUFBUSwyREFBMkQsNENBQTRDLHFDQUFxQyx5Q0FBeUMsdUJBQXVCLGdDQUFnQywyREFBMkQsRUFBRSw0QkFBNEIsT0FBTyxzQ0FBc0MsaUJBQWlCLGFBQWEsZ0JBQWdCLFFBQVEsb0RBQW9ELFdBQVcseUJBQXlCLHNGQUFzRixhQUFhLEVBQUUsZ0NBQWdDLFFBQVEsMkRBQTJELDRDQUE0QyxxQ0FBcUMseUJBQXlCLE9BQU8sb0NBQW9DLGlCQUFpQixhQUFhLGdCQUFnQixRQUFRLG9EQUFvRCxXQUFXLHlCQUF5QixzRkFBc0YsYUFBYSxFQUFFLGdDQUFnQyxRQUFRLHlEQUF5RCwwQ0FBMEMsbUNBQW1DLHlCQUF5QixPQUFPLGtDQUFrQyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSwrQ0FBK0MsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSx3REFBd0QseUNBQXlDLGtDQUFrQyx5QkFB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QTtBQUFBO0FBQUE7QUFBQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQSxLQTdaQTtBQThaQSxrQkE5WkEsMEJBOFpBLEdBOVpBLEVBOFpBLE1BOVpBLEVBOFpBLEtBOVpBLEVBOFpBO0FBQ0E7QUFDQTtBQUNBO0FBamFBO0FBakxBLEc7O0FDalY0VyxDQUFnQixrSEFBRyxFQUFDLEM7Ozs7O0FDQWhTO0FBQ3ZDO0FBQ0w7QUFDc0M7OztBQUcxRjtBQUNtRztBQUNuRyxJQUFJLG9CQUFTLEdBQUcsOENBQVU7QUFDMUIsRUFBRSwyQ0FBTTtBQUNSLEVBQUUsTUFBTTtBQUNSLEVBQUUsZUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFZSxvR0FBUyxRIiwiZmlsZSI6ImE5ODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjci1ib2R5LWNvbnRlbnRcIn0sW19jKCdkaXYnLHtyZWY6XCJib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJjb250ZW50LWhlYWRlclwifSxbX2MoJ2VsLWZvcm0nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93U2VhcmNoKSxleHByZXNzaW9uOlwic2hvd1NlYXJjaFwifV0scmVmOlwicXVlcnlGb3JtXCIsYXR0cnM6e1wibW9kZWxcIjpfdm0ubGlzdFF1ZXJ5LFwiaW5saW5lXCI6dHJ1ZX19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaVsOaNrumHh+mbhueCuVwiLFwicHJvcFwiOlwiU3RhdGVcIn19LFtfYygnZWwtY2hlY2tib3gtZ3JvdXAnLHttb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuc3RhdGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInN0YXRlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuc3RhdGVcIn19LF92bS5fbCgoX3ZtLmJpbGxTdGF0ZSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdlbC1jaGVja2JveCcse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5pZH0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoZWNrZWRMaXN0Q2hhbmdlKGluZGV4KX19fSxbX3ZtLl92KFwiIFwiK192bS5fcyhpdGVtLm5hbWUpK1wiIFwiKV0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi55Sf5Lqn57q/OlwiLFwicHJvcFwiOlwicHJvZHVjdFR5cGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnB0eXBlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkucHJvZHVjdFR5cGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInByb2R1Y3RUeXBlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkucHJvZHVjdFR5cGVcIn19LF92bS5fbCgoX3ZtLnByb2R1Y3RUeXBlTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5pZH19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIlwiLFwicHJvcFwiOlwicHJvZHVjdExpbmVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkucHJvZHVjdExpbmUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInByb2R1Y3RMaW5lXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkucHJvZHVjdExpbmVcIn19LF92bS5fbCgoX3ZtLlBMQ2hpbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnByb2R1Y3RMaW5lQ29kZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ucHJvZHVjdExpbmVOYW1lLFwidmFsdWVcIjppdGVtLnByb2R1Y3RMaW5lQ29kZX19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIui1t+Wni+mhuuW6j+WPt1wiLFwicHJvcFwiOlwiSG9zdFNOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTIwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIui1t+Wni+mhuuW6j+WPt1wiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLnu5PmnZ/pobrluo/lj7dcIixcInByb3BcIjpcIkhvc3RTTkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMjBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi57uT5p2f6aG65bqP5Y+3XCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5Ib3N0U05FbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5Lkhvc3RTTkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIktOUjpcIixcInByb3BcIjpcIktOUkJlZ2luXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LktOUkJlZ2luKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJLTlJCZWdpblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LktOUkJlZ2luXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiLVwiLFwicHJvcFwiOlwiS05SRW5kXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LktOUkVuZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiS05SRW5kXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuS05SRW5kXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5bqV55uY5Y+3OlwiLFwicHJvcFwiOlwiVklOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjAwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVklOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZJTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVklOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJWSU5FbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjAwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVklORW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWSU5FbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WSU5FbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLovablnovku6PnoIFcIixcInByb3BcIjpcInZlaGljbGVNb2RlbENvZGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlMX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcInZlaGljbGVNb2RlbENvZGVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlXCJ9fSxfdm0uX2woKF92bS52ZWhpY2xlTW9kZWxMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5kaWNJdGVtTmFtZSxcInZhbHVlXCI6aXRlbS5kaWNJdGVtQ29kZX19KX0pLDEpXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIueJiOacrFwiLFwicHJvcFwiOlwiVmVyc2lvblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WZXJzaW9uKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWZXJzaW9uXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVmVyc2lvblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuS4iue6v+aXpeacn1wifX0sW19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJzaXplXCI6XCJzbWFsbFwiLFwidmFsdWUtZm9ybWF0XCI6XCJ5eXl5LU1NLWRkXCIsXCJ0eXBlXCI6XCJkYXRlcmFuZ2VcIixcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihfdm0uT25saW5lVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLk9ubGluZVRpbWVWYWx1ZT0kJHZ9LGV4cHJlc3Npb246XCJPbmxpbmVUaW1lVmFsdWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLmjqXmlLbml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZFwiLFwidHlwZVwiOlwiZGF0ZXJhbmdlXCIsXCJyYW5nZS1zZXBhcmF0b3JcIjpcIi1cIixcInN0YXJ0LXBsYWNlaG9sZGVyXCI6XCLlvIDlp4vml6XmnJ9cIixcImVuZC1wbGFjZWhvbGRlclwiOlwi57uT5p2f5pel5pyfXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLlJlY2VpdmVUaW1lVmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uUmVjZWl2ZVRpbWVWYWx1ZT0kJHZ9LGV4cHJlc3Npb246XCJSZWNlaXZlVGltZVZhbHVlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCnmn6Xor6Lkv6Hmga8gXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wibGFiZWxcIjpcIuW6leebmOWPt1wiLFwicHJvcFwiOlwidmluIFwiLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwiZml4ZWRcIjpcIlwiLFwid2lkdGhcIjpcIjE4MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwibGluay10eXBlXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlRHJhd2VyT3BlbihzY29wZS5yb3cpfX19LFtfdm0uX3YoX3ZtLl9zKHNjb3BlLnJvdy52aW4pKV0pXX19XSl9KSxfdm0uX2woKF92bS5nZXREZWZhdWx0RmllbGQpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiBfYygnZWwtdGFibGUtY29sdW1uJyx7a2V5OmluZGV4LGF0dHJzOntcInByb3BcIjppdGVtLnByb3AsXCJsYWJlbFwiOml0ZW0ubGFiZWwsXCJtaW4td2lkdGhcIjppdGVtLndpZHRoLFwiZm9ybWF0dGVyXCI6X3ZtLmZpZWxkRm9ybWF0dGVyLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwic2hvdy1vdmVyZmxvdy10b29sdGlwXCI6XCJcIixcImd1dHRlclwiOjB9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImhlYWRlclwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW192bS5fdihcIiBcIitfdm0uX3Moc2NvcGUuY29sdW1uLmxhYmVsKStcIiBcIildfX1dLG51bGwsdHJ1ZSl9KX0pXSwyKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KSxfYygnaW1wb3J0RXhjZWwnLHtyZWY6XCJpbXBvcnRleGNlbFwiLGF0dHJzOntcInNob3dcIjpfdm0uc2hvd0V4Y2VsSW1wb3J0LFwiY3JtVHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJjbG9zZVwiOl92bS5pbXBvcnRFeGNlbERhdGF9fSldLDEpLF9jKCdlbC1kcmF3ZXInLHthdHRyczp7XCJ0aXRsZVwiOlwi5L+h5oGv6K+m57uG6aG1XCIsXCJzaXplXCI6XCI3NSVcIixcImRpcmVjdGlvblwiOlwicnRsXCIsXCJ2aXNpYmxlXCI6X3ZtLmRyYXdlcixcImJlZm9yZS1jbG9zZVwiOl92bS5oYW5kbGVEcmF3ZXJDbG9zZX0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kcmF3ZXI9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ0RldGFpbCcse3N0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi0zNXB4XCJ9LGF0dHJzOntcImN1c3RvbWVySW5mb3NcIjpfdm0uY3VzdG9tZXJJbmZvc319KV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIlxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgY29tcG9uZW50czoge30sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxvYWRpbmc6IGZhbHNlLCAvLyDliqDovb3liqjnlLtcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMDAsIC8vIOihqOeahOmrmOW6plxyXG4gICAgICB0b3RhbDogMFxyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICAvLyDlsZXnpLpvcHRpb25z5LiL5ouJ6YCJ5oupXHJcbiAgICBzaG93T3B0aW9ucygpIHtcclxuICAgICAgaWYgKHRoaXMuaW5mb1R5cGUgPT0gJ3B1dEluUG9vbFJlbWluZCcpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRidXMub24oJ21lc3NhZ2Utc2Nyb2xsJywgdGFibGVIZWlnaHQgPT4ge1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHRcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy4kYnVzLm9uKCdleGFtaW5lLWhhbmRsZS1idXMnLCAoKSA9PiB7XHJcbiAgICB9KVxyXG5cclxuICAgIC8qKiDmjqfliLZ0YWJsZeeahOmrmOW6piAqL1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVRhYmxlSGVpZ2h0KClcclxuICAgIH1cclxuICB9LFxyXG5cclxuICBiZWZvcmVEZXN0cm95KCkge1xyXG4gICAgdGhpcy4kYnVzLm9mZignbWVzc2FnZS1zY3JvbGwnKVxyXG4gICAgdGhpcy4kYnVzLm9mZignZXhhbWluZS1oYW5kbGUtYnVzJylcclxuXHJcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NybS10YWJsZScpKSB7XHJcbiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjcm0tdGFibGUnKS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGUgPT4ge1xyXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgfSlcclxuICAgIH1cclxuICB9LFxyXG5cclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOabtOaWsOihqOmrmFxyXG4gICAgICovXHJcbiAgICB1cGRhdGVUYWJsZUhlaWdodCgpIHtcclxuICAgICAgdmFyIG9mZnNldEhlaSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgdmFyIHJlbW92ZUhlaWdodCA9IE9iamVjdC5rZXlzKHRoaXMuZmlsdGVyT2JqKS5sZW5ndGggPiAwID8gMzYwIDogMzAwXHJcbiAgICAgIHRoaXMudGFibGVIZWlnaHQgPSBvZmZzZXRIZWkgLSByZW1vdmVIZWlnaHRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwiLFwicm93LWtleVwiOl92bS5nZXRSb3dLZXlzLFwiZXhwYW5kLXJvdy1rZXlzXCI6X3ZtLmV4cGFuZHN9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGljayxcImV4cGFuZC1jaGFuZ2VcIjpfdm0uZXhDaGFuZ2V9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZGVzY3JpcHRpb25cIixcImxhYmVsXCI6XCLmj4/ov7BcIn19KV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0t6YeN5aSN5oql5paH5p+l6K+iLeaYjue7huaVsOaNri0tPlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgPGVsLXRhYmxlXHJcbiAgICAgIHJlZj1cIm11bHRpcGxlVGFibGVcIlxyXG4gICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG4gICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgOmRhdGE9XCJsaXN0XCJcclxuICAgICAgOmhlaWdodD1cInRhYmxlSGVpZ2h0XCJcclxuICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgIHN0cmlwZVxyXG4gICAgICBib3JkZXJcclxuICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgQHNlbGVjdGlvbi1jaGFuZ2U9XCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2VcIlxyXG4gICAgICBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIlxyXG4gICAgICA6cm93LWtleT1cImdldFJvd0tleXNcIlxyXG4gICAgICA6ZXhwYW5kLXJvdy1rZXlzPVwiZXhwYW5kc1wiXHJcbiAgICAgIEBleHBhbmQtY2hhbmdlPVwiZXhDaGFuZ2VcIlxyXG4gICAgPlxyXG4gICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJwYXJ0Q29kZVwiIGxhYmVsPVwi5a6i5oi36Zu25Lu25Luj56CBXCI+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnROdW1cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuaVsOmHj1wiPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJkZXNjcmlwdGlvblwiIGxhYmVsPVwi5o+P6L+wXCI+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICA8L2VsLXRhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWZvb3RlclwiPlxyXG4gICAgICA8IS0tIOWIhumhteaOp+S7tiBzdHlsZT1cIm1hcmdpbi10b3A6IC0yNXB4O21hcmdpbi1ib3R0b206LTI1cHg7ZmxvYXQ6cmlnaHQ7XCItLT5cclxuICAgICAgPHBhZ2luYXRpb25cclxuICAgICAgICB2LXNob3c9XCJ0b3RhbENvdW50ID4gMFwiXHJcbiAgICAgICAgOnRvdGFsPVwidG90YWxDb3VudFwiXHJcbiAgICAgICAgOnBhZ2Uuc3luYz1cInBhZ2VcIlxyXG4gICAgICAgIDpsaW1pdC5zeW5jPVwibGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50XCJcclxuICAgICAgICBAcGFnaW5hdGlvbj1cImdldExpc3RcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjsgLy8gc2Vjb25kYXJ5IHBhY2thZ2UgYmFzZWQgb24gZWwtcGFnaW5hdGlvblxyXG5pbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5pbXBvcnQgQ1JNVGFibGVIZWFkIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NSTVRhYmxlSGVhZFwiO1xyXG5pbXBvcnQgeyBkb3dubG9hZEZpbGUgfSBmcm9tIFwiQC91dGlscy9jcm1pbmRleC5qc1wiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwic2VuZFVuc2V0dGxlZERpZmZSZXBvcnRcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgRGV0YWlsIH0sXHJcbiAgZGlyZWN0aXZlczogeyBwZXJtaXNzaW9uIH0sXHJcbiAgZmlsdGVyczoge1xyXG4gICAgSXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcbiAgICAgIC8v57+76K+R5piv5ZCm562+5a2XXHJcbiAgICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcclxuICAgICAgICB0cnVlOiBcIuaYr1wiLFxyXG4gICAgICAgIGZhbHNlOiBcIuWQplwiLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGN1c3RvbWVySW5mb3M6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNybVR5cGU6IFwic3RvY2tGaXNEaWZmUmVwb3J0XCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgLy/liY3nq6/lrprkuYnnmoTop4TliJnvvIzlkI7nq6/kuZ/mnInpqozor4FcclxuICAgICAgICBlcnBNYXRlcmlhbENvZGU6IFtcclxuICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IFwi5b+F6aG76L6T5YWl77yBXCIsIHRyaWdnZXI6IFwiYmx1clwiIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgZXhwYW5kczogW10sIC8v5Y+q5bGV5byA5LiA6KGM5pS+5YWl5b2T5YmN6KGMaWRcclxuICAgICAgZ2V0Um93S2V5czogKHJvdykgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3cuaWQ7IC8v6L+Z6YeM55yL6L+Z5LiA6KGM5Lit6ZyA6KaB5qC55o2u5ZOq5Liq5bGe5oCn5YC85pivaWRcclxuICAgICAgfSxcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIHBhcmVudElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtOiB7XHJcbiAgICAgICAgZGljRGV0YWlsSUQ6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXJJZDogXCJcIixcclxuICAgICAgICBwcm9qZWN0SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIEZpbHRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbG9naWM6IDAsXHJcbiAgICAgICAgICAgIGNvbHVtbjogXCJFbmFibGVkXCIsXHJcbiAgICAgICAgICAgIGFjdGlvbjogMCxcclxuICAgICAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxyXG4gICAgICAgICAgfSwgLy/pu5jorqTmn6Xor6Llj6/nlKjnmoRcclxuICAgICAgICBdLFxyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgaWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhZ2U6IDEsXHJcbiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzAsXHJcbiAgICAgIGlzRWRpdDogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgIHdpbmRvdy5vbnJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIG9mZnNldEhlaSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIHNlbGYudGFibGVIZWlnaHQgPSBvZmZzZXRIZWkgLSAzMDtcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICBoYW5kbGVyKG5ld1ZhbCkge1xyXG4gICAgICAgIGlmIChuZXdWYWwgPT0gXCJcIiB8fCBuZXdWYWwgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgLy9UT0RPXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkID0gZWxlbWVudC5QYXJlbnRJZDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC8qKiDliJfooajlrZfmrrUgKi9cclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5oC75oiQ5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuICAgICAgICB3aWR0aDogMTYwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuaAu+aIkOeJiOacrOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwiZXJwQXNzZW1ibHlOYW1lXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE2MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZXhDaGFuZ2Uocm93LCByb3dMaXN0KSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgIGlmIChyb3dMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgIHRoYXQuZXhwYW5kcy5wdXNoKHJvdy5pZCk7IC8vIOWPquWxleW8gOW9k+WJjeihjGlkXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgY29uc29sZS5sb2coXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9cIiArIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5tMTAwUmVwZWF0UGFydHM7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHJlc2V0UXVlcnkoKSB7fSxcclxuXHJcbiAgICBzb3J0Q2hhbmdlKGRhdGEpIHtcclxuICAgICAgY29uc3QgeyBwcm9wLCBvcmRlciB9ID0gZGF0YTtcclxuICAgICAgaWYgKCFwcm9wIHx8ICFvcmRlcikge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJsZWZ0XCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLbooajlpLRzdHlsZSAqL1xyXG4gICAgaGVhZGVyUm93U3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NWZjYTk4YzImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NWZjYTk4YzImbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI1ZmNhOThjMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3ph43lpI3miqXmlofkv6Hmga/pobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICAgIDxmbGV4Ym94IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgOm1vZGVsPVwibGlzdFF1ZXJ5XCJcclxuICAgICAgICAgIHJlZj1cInF1ZXJ5Rm9ybVwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICAgIDppbmxpbmU9XCJ0cnVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDmja7ph4fpm4bngrlcIiBwcm9wPVwicHJvZHVjdFR5cGVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJsaXN0UXVlcnkuY2hlY2tlZDFcIiA+TTEwMDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1jaGVja2JveCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmNoZWNrZWQyXCIgPlIxMDA8L2VsLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPiAtLT5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDmja7ph4fpm4bngrlcIiBwcm9wPVwiU3RhdGVcIiA+XHJcbiAgICAgICAgICAgIDxlbC1jaGVja2JveC1ncm91cCB2LW1vZGVsPVwibGlzdFF1ZXJ5LnN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gYmlsbFN0YXRlXCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImNoZWNrZWRMaXN0Q2hhbmdlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XHJcbiAgICAgICAgICAgICAgPC9lbC1jaGVja2JveD5cclxuICAgICAgICAgICAgPC9lbC1jaGVja2JveC1ncm91cD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLnlJ/kuqfnur86XCIgcHJvcD1cInByb2R1Y3RUeXBlXCI+XHJcbiAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnByb2R1Y3RUeXBlXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE1cHhcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJwdHlwZXNlbGVjdENoYW5nZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gcHJvZHVjdFR5cGVMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIlwiIHByb3A9XCJwcm9kdWN0TGluZVwiPlxyXG4gICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5wcm9kdWN0TGluZVwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNXB4XCJcclxuICAgICAgICAgICAgICBAY2hhbmdlPVwidmFsdWVzZWxlY3RDaGFuZ2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIFBMQ2hpbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnByb2R1Y3RMaW5lTmFtZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi6LW35aeL6aG65bqP5Y+3XCIgcHJvcD1cIkhvc3RTTkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6LW35aeL6aG65bqP5Y+3XCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEyMHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi57uT5p2f6aG65bqP5Y+3XCIgcHJvcD1cIkhvc3RTTkVuZFwiPlxyXG4gICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5Lkhvc3RTTkVuZFwiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLnu5PmnZ/pobrluo/lj7dcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTIwcHhcIlxyXG4gICAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJLTlI6XCIgcHJvcD1cIktOUkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuS05SQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiLVwiIHByb3A9XCJLTlJFbmRcIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJFbmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiIHByb3A9XCJWSU5CZWdpblwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIlZJTkVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklORW5kXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei+S7o+eggVwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxDb2RlXCI+XHJcbiAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlXCJcclxuICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwidmFsdWVzZWxlY3RDaGFuZ2UxXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiB2ZWhpY2xlTW9kZWxMaXN0XCJcclxuICAgICAgICAgICAgOmtleT1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5kaWNJdGVtQ29kZVwiLz5cclxuICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LlZlaGljbGVNb2RlbENvZGVcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPiAtLT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi54mI5pysXCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaAu+aIkOWQjeensFwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ9cIj5cclxuICAgICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cIk9ubGluZVRpbWVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgdmFsdWUtZm9ybWF0PVwieXl5eS1NTS1kZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGVyYW5nZVwiXHJcbiAgICAgICAgICAgICAgcmFuZ2Utc2VwYXJhdG9yPVwiLVwiXHJcbiAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgIGVuZC1wbGFjZWhvbGRlcj1cIue7k+adn+aXpeacn1wiXHJcbiAgICAgICAgICAgID48L2VsLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5o6l5pS25pel5pyfXCI+XHJcbiAgICAgICAgICAgIDxlbC1kYXRlLXBpY2tlclxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJSZWNlaXZlVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXJhbmdlXCJcclxuICAgICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgICBzdGFydC1wbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXHJcbiAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8IS0tIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLljZXmja7nirbmgIFcIiBwcm9wPVwiQmlsbFN0YXR1c1wiPlxyXG4gICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LkJpbGxTdGF0dXNcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDIwMHB4XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuacqumihuWPlueUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjFcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuW3sumihuWPlueUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjJcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgICAgPGVsLW9wdGlvbiBsYWJlbD1cIuWujOaIkOeUn+S6p+S7u+WKoVwiIDp2YWx1ZT1cIjNcIj48L2VsLW9wdGlvbj5cclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPiAtLT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgPuaQnOe0ojwvZWwtYnV0dG9uXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXJlZnJlc2hcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICBAY2xpY2s9XCJyZXNldFF1ZXJ5KCdxdWVyeUZvcm0nKVwiXHJcbiAgICAgICAgICAgICAgPumHjee9rjwvZWwtYnV0dG9uXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcclxuICAgICAgICAgICAgICBwbGFpblxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLWRvd25sb2FkXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTVweFwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRG93bmxvYWQoKVwiXHJcbiAgICAgICAgICAgICAgPuWvvOWHuihFeGNlbCnmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgIDwvZmxleGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImwtdGFibGVcIj5cclxuICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICA8ZWwtdGFibGVcclxuICAgICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICA6ZGF0YT1cImxpc3RcIlxyXG4gICAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICAgIDpoZWFkZXItY2VsbC1zdHlsZT1cImhlYWRlclJvd1N0eWxlXCJcclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIHN0cmlwZVxyXG4gICAgICAgIGJvcmRlclxyXG4gICAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCVcIlxyXG4gICAgICAgIEBzb3J0LWNoYW5nZT1cInNvcnRDaGFuZ2VcIlxyXG4gICAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgICBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgbGFiZWw9XCLlupXnm5jlj7dcIlxyXG4gICAgICAgICAgcHJvcD1cInZpbiBcIlxyXG4gICAgICAgICAgc29ydGFibGU9XCJjdXN0b21cIlxyXG4gICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgZml4ZWRcclxuICAgICAgICAgIHdpZHRoPVwiMTgwcHhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5rLXR5cGVcIiBAY2xpY2s9XCJoYW5kbGVEcmF3ZXJPcGVuKHNjb3BlLnJvdylcIj57e1xyXG4gICAgICAgICAgICAgIHNjb3BlLnJvdy52aW5cclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgIDpwcm9wPVwiaXRlbS5wcm9wXCJcclxuICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIlxyXG4gICAgICAgICAgOmZvcm1hdHRlcj1cImZpZWxkRm9ybWF0dGVyXCJcclxuICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgIHNob3ctb3ZlcmZsb3ctdG9vbHRpcFxyXG4gICAgICAgICAgOmd1dHRlcj1cIjBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCIgc2xvdC1zY29wZT1cInNjb3BlXCI+XHJcbiAgICAgICAgICAgIHt7IHNjb3BlLmNvbHVtbi5sYWJlbCB9fVxyXG4gICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPC9lbC10YWJsZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgICAgPCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcbiAgICAgIDxwYWdpbmF0aW9uXHJcbiAgICAgICAgdi1zaG93PVwidG90YWxDb3VudCA+IDBcIlxyXG4gICAgICAgIDp0b3RhbD1cInRvdGFsQ291bnRcIlxyXG4gICAgICAgIDpwYWdlLnN5bmM9XCJwYWdlXCJcclxuICAgICAgICA6bGltaXQuc3luYz1cImxpc3RRdWVyeS5NYXhSZXN1bHRDb3VudFwiXHJcbiAgICAgICAgQHBhZ2luYXRpb249XCJnZXRMaXN0XCJcclxuICAgICAgLz5cclxuICAgICAgPCEtLSDlr7zlhaVFeGNlbOe7hOS7tiAtLT5cclxuICAgICAgPGltcG9ydEV4Y2VsXHJcbiAgICAgICAgcmVmPVwiaW1wb3J0ZXhjZWxcIlxyXG4gICAgICAgIDpzaG93PVwic2hvd0V4Y2VsSW1wb3J0XCJcclxuICAgICAgICA6Y3JtVHlwZT1cImNybVR5cGVcIlxyXG4gICAgICAgIEBjbG9zZT1cImltcG9ydEV4Y2VsRGF0YVwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgPGVsLWRyYXdlclxyXG4gICAgICB0aXRsZT1cIuS/oeaBr+ivpue7humhtVwiXHJcbiAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICBkaXJlY3Rpb249XCJydGxcIlxyXG4gICAgICA6dmlzaWJsZS5zeW5jPVwiZHJhd2VyXCJcclxuICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgID5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICB2LWJpbmQ6Y3VzdG9tZXJJbmZvcz1cImN1c3RvbWVySW5mb3NcIlxyXG4gICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAtMzVweFwiXHJcbiAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZWwtZHJhd2VyPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tIFwidnVleFwiO1xyXG5pbXBvcnQgTG9ja3IgZnJvbSBcImxvY2tyXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgbWVzc2FnZV90YWJsZSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9taXhpbnMvbWVzc2FnZV90YWJsZVwiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbC52dWVcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuXHJcbi8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcbmNvbnN0IGJvbVVuaXQgPSBbXHJcbiAgeyBrZXk6IDAsIGRpc3BsYXlfbmFtZTogXCJQQ1wiIH0sXHJcbiAgeyBrZXk6IDEsIGRpc3BsYXlfbmFtZTogXCJUT05cIiB9LFxyXG4gIHsga2V5OiAyLCBkaXNwbGF5X25hbWU6IFwiT3RoZXJcIiB9LFxyXG5dO1xyXG5jb25zdCBwcm9qZWN0VHlwZUtleVZhbHVlID0gYm9tVW5pdC5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XHJcbiAgYWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuICByZXR1cm4gYWNjO1xyXG59LCB7fSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJSZXBlYXRNMTAwXCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIGltcG9ydEV4Y2VsLCBEZXRhaWwgfSxcclxuICBkaXJlY3RpdmVzOiB7IHBlcm1pc3Npb24gfSxcclxuICBmaWx0ZXJzOiB7XHJcbiAgICBJc0N1c3RvbWVyU2lnbkZpbHRlcihzdGF0dXMpIHtcclxuICAgICAgLy/nv7vor5HmmK/lkKbnrb7lrZdcclxuICAgICAgY29uc3Qgc3RhdHVzTWFwID0ge1xyXG4gICAgICAgIHRydWU6IFwi5pivXCIsXHJcbiAgICAgICAgZmFsc2U6IFwi5ZCmXCIsXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBzdGF0dXNNYXBbc3RhdHVzXTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtaXhpbnM6IFttZXNzYWdlX3RhYmxlXSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JtVHlwZTogXCJib21kYXRhYmFzZVwiLFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgYmlsbFN0YXRlOiBbXHJcbiAgICAgICAgeyBpZDogMiwgbmFtZTogXCJSMTAwXCIgfSxcclxuICAgICAgICB7IGlkOiAzLCBuYW1lOiBcIk0xMDBcIiB9LFxyXG4gICAgICBdLFxyXG4gICAgICBpc1ZJTlNob3dTdGF0ZTpmYWxzZSxcclxuICAgICAgT25saW5lVGltZVZhbHVlOiBbXSxcclxuICAgICAgUmVjZWl2ZVRpbWVWYWx1ZTogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvc01COltdLFxyXG4gICAgICBjdXN0b21lckluZm9zWkhCOltdLFxyXG4gICAgICB2ZXJzaW9uTGlzdDogW10sIC8v54mI5pys5YiX6KGoXHJcbiAgICAgIHNlYXJjaENvbnRlbnQ6IFwiXCIsIC8vIOi+k+WFpeWGheWuuVxyXG4gICAgICBzaG93RXhjZWxJbXBvcnQ6IGZhbHNlLFxyXG4gICAgICBmb3JtOiB7fSxcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgbGlzdDogbnVsbCxcclxuICAgICAgdG90YWxDb3VudDogMCxcclxuICAgICAgbGlzdExvYWRpbmc6IHRydWUsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIGJvbUlkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyDpq5jnuqfmkJzntKJcclxuICAgICAgZmlsdGVyT2JqOiB7XHJcbiAgICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0UXVlcnk6IHtcclxuICAgICAgICBcclxuICAgICAgICBwcm9kdWN0VHlwZTogMSwgLy8xOumXqOadv++8mzI65p+x5oqk5p2/XHJcbiAgICAgICAgUHJvZHVjdExpbmU6IHVuZGVmaW5lZCxcclxuICAgICAgICBjaGVja2VkMTp0cnVlLFxyXG4gICAgICAgIGNoZWNrZWQyOnRydWUsXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBIb3N0U05CZWdpbjogdW5kZWZpbmVkLFxyXG4gICAgICAgIEhvc3RTTkVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZJTjogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZJTkJlZ2luOiB1bmRlZmluZWQsXHJcbiAgICAgICAgVklORW5kOiB1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUJlZ2luOiB1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFJlY2VpdmVUaW1lQmVnaW46IHVuZGVmaW5lZCxcclxuICAgICAgICBSZWNlaXZlVGltZUVuZDogdW5kZWZpbmVkLFxyXG4gICAgICAgIFZlaGljbGVNb2RlbENvZGU6IHVuZGVmaW5lZCxcclxuICAgICAgICBWZXJzaW9uOiB1bmRlZmluZWQsXHJcbiAgICAgICAgS05SOiB1bmRlZmluZWQsXHJcbiAgICAgICAgc3RhdGU6IFtdLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgbGlzdFBMUXVlcnk6IHtcclxuICAgICAgICBCaWxsVHlwZTogMixcclxuICAgICAgICAvL1VzZXJJZDogdGhpcy51c2VyaW5mby5Vc2VySWQsXHJcbiAgICAgIH0sXHJcbiAgICAgICB2ZWhpY2xlTW9kZWxRdWVyeTp7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6XCLmtL7moLzovablnotcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2XHJcbiAgICAgICAgLy8gVmVoaWNsZU1vZGVsQ29kZWxpc3Q6W1xyXG4gICAgICAgIC8vICAge2lkOiAxLCBuYW1lOiBcIkM4XCJ9LFxyXG4gICAgICAgIC8vICAge2lkOiAyLCBuYW1lOiBcIkI4TFwifSxcclxuICAgICAgICAvLyAgIHtpZDogMywgbmFtZTogXCJDQ1wifSxcclxuICAgICAgICAvLyAgIHtpZDogNCwgbmFtZTogXCJCU01WXCJ9LFxyXG4gICAgICAgIC8vICAge2lkOiA1LCBuYW1lOiBcIkI5XCJ9LFxyXG4gICAgICAgIC8vICAgIHtpZDogNiwgbmFtZTogXCJRNVwifSxcclxuICAgICAgICAvLyBdLFxyXG4gICAgICAgIHByb2R1Y3RUeXBlTGlzdDogW1xyXG4gICAgICAgIHsgaWQ6IDEsIG5hbWU6IFwi6Zeo5p2/XCIgfSxcclxuICAgICAgICB7IGlkOiAyLCBuYW1lOiBcIuafseaKpOadv1wiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIGJvbVVuaXQsXHJcbiAgICAgIFBMTGlzdDogW10sXHJcbiAgICAgIFBMQ2hpbGRMaXN0OiBbXSwgLy/nrZvpgInlkI7kuqfnur/kuIvmi4lcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBpc1Nob3dTdGF0ZTogdHJ1ZSxcclxuICAgICAgZGlhbG9nVGFibGVWaXNpYmxlOiBmYWxzZSxcclxuICAgICAgdmVoaWNsZU1vZGVsTGlzdDpbXSwvL+i9puWei2xpc3RcclxuICAgICAgLy90YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDI2MCxcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdGhpcy4kbmV4dFRpY2soKCkgPT4geyBcclxuICAgICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgICAgbGV0IGJveEggPSB0aGlzLiRyZWZzLmJveC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgdGhpcy50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIGJveEggLSA1NyAtIDc5Oy8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG4gICAgfSk7XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIHRoaXMuYmlsbFN0YXRlLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LnN0YXRlLnB1c2goZWxlbWVudC5pZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgIHRoaXMuZ2V0UHJvZHVjdExpbmUoKTtcclxuICB9LFxyXG4gIGNvbXB1dGVkOiB7XHJcbiAgICBnZXREZWZhdWx0RmllbGQoKSB7XHJcbiAgICAgIHZhciB0ZW1wc1RhYnMgPSBbXTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLmtYHmsLTlj7dcIiwgcHJvcDogXCJzZXJpYWxOdW1cIiwgd2lkdGg6IDEwMCB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLlpKfkvJfpobrluo/lj7dcIiwgcHJvcDogXCJob3N0U05cIiwgd2lkdGg6IDEyMCB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIktOUlwiLFxyXG4gICAgICAgIHByb3A6IFwia25yXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLlupXnm5jlj7dcIixcclxuICAgICAgICBwcm9wOiBcInZpblwiLFxyXG4gICAgICAgIHdpZHRoOiAxMzAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5LiK57q/5pe26Ze0XCIsXHJcbiAgICAgICAgcHJvcDogXCJvbmxpbmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmjqXmlLbml7bpl7RcIixcclxuICAgICAgICBwcm9wOiBcInJlY2VpdmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE4MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLovablnovku6PnoIFcIixcclxuICAgICAgICBwcm9wOiBcInZlaGljbGVNb2RlbENvZGVcIixcclxuICAgICAgICB3aWR0aDogMTIwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIueJiOacrFwiLFxyXG4gICAgICAgIHByb3A6IFwidmVyc2lvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5Lqn57q/XCIsXHJcbiAgICAgICAgcHJvcDogXCJwcm9kdWN0TGluZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5pWw5o2u6YeH6ZuG54K5XCIsXHJcbiAgICAgICAgcHJvcDogXCJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5Y2V5o2u54q25oCBXCIsIHByb3A6IFwiYmlsbFN0YXR1c1wiLCB3aWR0aDogMTIwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi6L2m5Z6L5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZWhpY2xlTW9kZWxOYW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gICAgLi4ubWFwR2V0dGVycyhbXCJ1c2VySW5mb1wiXSksIC8v6I635Y+W5b2T5YmN55So5oi35L+h5oGvXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAgICBzcyhkYXRhKSB7XHJcbiAgICAgIC8vYWxlcnQoZGF0YSk7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmFsdWVTZWxlY3QgPSBkYXRhO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvL+aKveWxiVxyXG4gICAgaGFuZGxlRHJhd2VyT3BlbihwYXJhbSkge1xyXG4gICAgICB0aGlzLmRyYXdlciA9IHRydWU7XHJcbiAgICAgIHZhciBwYXJlbnRJZCA9IHBhcmFtLmlkOyAvL+S8oOWFpeeahOaYr+aAu+aIkGlkXHJcbiAgICAgIHRoaXMuY3VzdG9tZXJJbmZvcyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBQYXJlbnRJZDogcGFyZW50SWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVEcmF3ZXJDbG9zZShkb25lKSB7XHJcbiAgICAgIGRvbmUoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5a+85Ye65Yqf6IO9ICovXHJcbiAgICBoYW5kbGVEb3dubG9hZCgpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIC8vIGlmICh0aGlzLk9ubGluZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgICAvLyAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVCZWdpbiA9IHRoaXMuT25saW5lVGltZVZhbHVlWzBdO1xyXG4gICAgICAvLyAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAodGhpcy5SZWNlaXZlVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVCZWdpbiA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXTtcclxuICAgICAgLy8gICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgLy8gfVxyXG4gICAgICBpZiAodGhpcy5PbmxpbmVUaW1lVmFsdWUgIT0gW10pIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lQmVnaW4gPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVswXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLlJlY2VpdmVUaW1lVmFsdWUgIT0gW10pIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUJlZ2luID0gdGhpcy5SZWNlaXZlVGltZVZhbHVlXHJcbiAgICAgICAgICA/IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVxyXG4gICAgICAgICAgPyB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMV0gfHwgdW5kZWZpbmVkXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICBjb25zb2xlLmxvZyhcIumHjeWkjeaKpeaWh+WvvOWHuuadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9leHBvcnRcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgbGV0IGZpbGVuYW1lID0gcmVzLml0ZW07XHJcbiAgICAgICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgICAuQm9sYkdldHMoXCIvYXBpL25ld2ppdC9leGNsdWRlLXBhcnQtY2ZnL2Rvd25sb2FkL1wiICsgZmlsZW5hbWUpXHJcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChmaWxlbmFtZS5pbmRleE9mKFwiX1wiKSAhPSAtMSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRvd25OYW1lID1cclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoMCwgZmlsZW5hbWUubGFzdEluZGV4T2YoXCJfXCIpKSArXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKGZpbGVuYW1lLmxhc3RJbmRleE9mKFwiLlwiKSk7XHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGUocmVzcG9uc2UsIGRvd25OYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZmlsZW5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyrljZXmja7nirbmgIHlj5jmm7QgKi9cclxuICAgICBjaGVja2VkTGlzdENoYW5nZShpbmRleCkge1xyXG4gICAgICBpZiAodGhpcy5saXN0UXVlcnkuc3RhdGUubGVuZ3RoIDw9IDEpIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZS5wdXNoKHRoaXMuYmlsbFN0YXRlW2luZGV4XS5pZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuc3RhdGUgPSBbXTtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZS5wdXNoKHRoaXMuYmlsbFN0YXRlW2luZGV4XS5pZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5saXN0UXVlcnkuc3RhdGVbMF09PVwiM1wiKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5pc1ZJTlNob3dTdGF0ZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5pc1ZJTlNob3dTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZSA9IFtdO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5zdGF0ZSA9IFtdO1xyXG4gICAgICB0aGlzLiRyZWZzW3JlZk5hbWVdLnJlc2V0RmllbGRzKCk7XHJcbiAgICAgIHRoaXMuaGFuZGxlUXVlcnkoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcbiAgICBoYW5kbGVRdWVyeSgpIHtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gMTtcclxuICAgICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgfSxcclxuICAgIHNlbGVjdFZhbHVlKHBhcmFtcykge1xyXG4gICAgICAvL+eJiOacrOS4i+aLiemAieaLqVxyXG4gICAgICB0aGlzLnZlcnNpb25WYWx1ZSA9IHBhcmFtcy52YWx1ZTtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgIC8vIHRoaXMuZ2V0TGlzdE0xMDAoKTtcclxuICAgICAgLy8gIHRoaXMuZ2V0TGlzdFIxMDAoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc2VsZWN0T3B0aW9uc0NoYW5nZShpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAvLyB0aGlzLmdldExpc3RNMTAwKCk7XHJcbiAgICAgIC8vICB0aGlzLmdldExpc3RSMTAwKCk7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICAvL3RoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKiog5Yi35paw5YiX6KGoICovXHJcbiAgICBoYW5kbGVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlICE9PSBcImVkaXRcIikge1xyXG4gICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAgIC8vIHRoaXMuZ2V0TGlzdE0xMDAoKTtcclxuICAgICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuICAgICAgICByZXR1cm4geyAxOiBcIuacqumihuWPlueUn+S6p+S7u+WKoVwiLCAyOiBcIuW3sumihuWPlueUn+S6p+S7u+WKoVwiLCAzOiBcIuWujOaIkOeUn+S6p+S7u+WKoVwiIH1bXHJcbiAgICAgICAgICByb3dbY29sdW1uLnByb3BlcnR5XVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PSBcIm9ubGluZVRpbWVcIiB8fCBjb2x1bW4ucHJvcGVydHkgPT0gXCJyZWNlaXZlVGltZVwiKSB7XHJcbiAgICAgICAgdmFyIGRhdGUgPSByb3dbY29sdW1uLnByb3BlcnR5XTtcclxuICAgICAgICBpZiAoZGF0ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbW9tZW50KGRhdGUpLmZvcm1hdChcIllZWVktTU0tREQgSEg6bW06c3NcIik7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHJvd1tjb2x1bW4ucHJvcGVydHldIHx8IFwiLS1cIjtcclxuICAgIH0sXHJcbiAgICByb2xlRmlsdGVyKHR5cGUpIHtcclxuICAgICAgcmV0dXJuIHByb2plY3RUeXBlS2V5VmFsdWVbdHlwZV07XHJcbiAgICAgIFxyXG4gICAgfSxcclxuIFxyXG4gIGdldExpc3QoZGF0YSl7XHJcbiAgICAgICAgXHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgIGlmIChkYXRhICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIGRhdGEubGltaXQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gKHRoaXMucGFnZSAtIDEpICogMTU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuT25saW5lVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUJlZ2luID0gdGhpcy5PbmxpbmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMuT25saW5lVGltZVZhbHVlWzFdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vICBpZiAodGhpcy52YWx1ZVNlbGVjdCAhPSBcIlwiKSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuVmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMudmFsdWVTZWxlY3Q7XHJcbiAgICAgIC8vIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgdGhpcy5saXN0UXVlcnkuVmVoaWNsZU1vZGVsQ29kZSA9IFwiXCI7XHJcbiAgICAgIC8vIH1cclxuICAgICAgaWYgKHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lQmVnaW4gPSB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVFbmQgPSB0aGlzLlJlY2VpdmVUaW1lVmFsdWVbMV07XHJcbiAgICAgIH1cclxuICAgIFxyXG5pZih0aGlzLmxpc3RRdWVyeS5zdGF0ZVswXSA9PSBcIjJcIilcclxue1xyXG4gIHRoaXMuZGlhbG9nVGFibGVWaXNpYmxlID0gZmFsc2U7XHJcbiAgY29uc29sZS5sb2coXCI1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTVcIitKU09OLnN0cmluZ2lmeSh0aGlzLmxpc3RRdWVyeSkpO1xyXG4gICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3JlcGVhdC1yMTAwL2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbn1cclxuZWxzZVxyXG57XHJcbiAgdGhpcy5kaWFsb2dUYWJsZVZpc2libGUgPSB0cnVlO1xyXG50aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvcmVwZWF0LW0xMDAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxufVxyXG5cclxuICAgIC8vICBpZiAodGhpcy5iaWxsU3RhdGU9PT0gMikge1xyXG4gICAgICAgXHJcbiAgICAvLyAgIHRoaXMuJGF4aW9zXHJcbiAgICAvLyAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtcjEwMC9saXN0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgLy8gICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAvLyAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXNwb25zZS50b3RhbENvdW50O1xyXG4gICAgLy8gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgIH0sIDUwMCk7XHJcbiAgICAvLyAgICAgfSlcclxuICAgIC8vICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gIH1cclxuICAgIC8vICBlbHNlIGlmKHRoaXMuYmlsbFN0YXRlID09PSAzKXtcclxuICAgICBcclxuICAgIC8vICAgdGhpcy4kYXhpb3NcclxuICAgIC8vICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3JlcGVhdC1tMTAwL2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAvLyAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgIC8vICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAvLyAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIC8vICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgIC8vICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgfSwgNTAwKTtcclxuICAgIC8vICAgICB9KVxyXG4gICAgLy8gICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyAgfVxyXG4gIC8vfVxyXG4gICAgXHJcbiAgIFxyXG4gICAgfSxcclxuICAgIC8vIGdldExpc3QoZGF0YSkge1xyXG4gICAgLy8gICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgIC8vICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5Ta2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiBkYXRhLmxpbWl0O1xyXG4gICAgLy8gICB9IGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIDE1O1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGlmICh0aGlzLk9ubGluZVRpbWVWYWx1ZSAhPSBbXSkge1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVCZWdpbiA9IHRoaXMuT25saW5lVGltZVZhbHVlWzBdO1xyXG4gICAgLy8gICAgIHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVFbmQgPSB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBpZiAodGhpcy5SZWNlaXZlVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAvLyAgICAgdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVCZWdpbiA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVswXTtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZUVuZCA9IHRoaXMuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICAgaWYgKHRoaXMubGlzdFF1ZXJ5LnN0YXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgIC8vICAgICB0aGlzLmxpc3RRdWVyeS5iaWxsU3RhdHVzID0gdGhpcy5saXN0UXVlcnkuc3RhdGVbMF07XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgIC8vdGhpcy5saXN0UXVlcnlMaXN0LlByb2R1Y3RMaW5lID0gdGhpcy5saXN0UXVlcnkucHJvZHVjdExpbmU7XHJcbiAgICAvLyAgIHRoaXMuJGF4aW9zXHJcbiAgICAvLyAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9yZXBlYXQtbTEwMC9saXN0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgLy8gICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbXM7XHJcbiAgICAvLyAgICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXNwb25zZS50b3RhbENvdW50O1xyXG4gICAgLy8gICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAvLyAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgIH0sIDUwMCk7XHJcbiAgICAvLyAgICAgfSlcclxuICAgIC8vICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgLy8gICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfSxcclxuICAgIGhhbmRsZUZpbHRlcigpIHtcclxuICAgICB0aGlzLmRpYWxvZ1RhYmxlVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAvLyAgdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgfSxcclxuICAgICAgLy/kuqfnur/nsbvlnovlj5jmm7RcclxuICAgIHB0eXBlc2VsZWN0Q2hhbmdlKCkge1xyXG4gICAgICBkZWJ1Z2dlclxyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyXCIrdGhpcy5saXN0UXVlcnkucHJvZHVjdFR5cGUpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKHUpID0+IHUucHJvZHVjdFR5cGUgPT09IHBhcnNlSW50KHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlKVxyXG4gICAgICApLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICByZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUgLSBiLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuUExMaXN0KVxyXG4gICAgICB9LFxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0UHJvZHVjdExpbmUoKSB7XHJcbiAgICAgIC8vZGVidWdnZXJcclxuICAgICAgLy9jb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJJbmZvKSk7XHJcbiAgICAgIHRoaXMubGlzdFBMUXVlcnkuVXNlcklkID0gdGhpcy51c2VySW5mby51c2VySWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5saXN0UExRdWVyeS5Vc2VySWR0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZHRoaXMubGlzdFBMUXVlcnkuVXNlcklkdGhpcy5saXN0UExRdWVyeS5Vc2VySWR0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZFwiK3RoaXMubGlzdFBMUXVlcnkuVXNlcklkKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3Byb2R1Y3QtbGluZS9saXN0XCIsIHRoaXMubGlzdFBMUXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLojrflj5bkuqfnur/mlbDmja7vvJpcIitKU09OLnN0cmluZ2lmeShyZXNwb25zZS5pdGVtKSk7XHJcbiAgICAgICAgICB0aGlzLlBMTGlzdCA9IHJlc3BvbnNlLml0ZW07XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICh1KSA9PiB1LnByb2R1Y3RUeXBlID09PSBwYXJzZUludCh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSlcclxuICAgICAgICAgICkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUgLSBiLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCIyMjIyMjIy6I635Y+W5Lqn57q/5pWw5o2u77yaXCIrSlNPTi5zdHJpbmdpZnkodGhpcy5QTENoaWxkTGlzdCkpO1xyXG4gICAgICAgICAgdGhpcy5saXN0UXVlcnkucHJvZHVjdExpbmUgPSB0aGlzLlBMQ2hpbGRMaXN0WzBdLnByb2R1Y3RMaW5lQ29kZTtcclxuICAgICAgICAgIGlmICh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSAhPSBcIlwiKSB7XHJcbiAgICAgICAgICAgIC8v5oqK5Lqn57q/5YC85Lyg5Yiw5a2Q57uE5Lu2XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvc01CID0gW1xyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIFByaW50VHlwZTogMSxcclxuICAgICAgICAgICAgICAgIFByb2R1Y3RMaW5lOiB0aGlzLlBMQ2hpbGRMaXN0WzBdLnByb2R1Y3RMaW5lQ29kZSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICAgICAgLy8gdGhpcy5nZXRMaXN0TTEwMCgpO1xyXG4gICAgICAgICAgLy8gdGhpcy5nZXRMaXN0UjEwMCgpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMTGlzdClcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICB9LFxyXG4gICAgIHZhbHVlc2VsZWN0Q2hhbmdlMSgpe30sXHJcblxyXG4gICAgIHZhbHVlc2VsZWN0Q2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmN1c3RvbWVySW5mb3NNQiA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbWVySW5mb3NaSEIgPSBbXTtcclxuICAgICAgaWYgKHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlID09PSAxKSB7XHJcbiAgICAgICAgLy/miorkuqfnur/lgLzkvKDliLDlrZDnu4Tku7ZcclxuICAgICAgICB0aGlzLmN1c3RvbWVySW5mb3NNQiA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgUHJpbnRUeXBlOiAxLFxyXG4gICAgICAgICAgICBQcm9kdWN0TGluZTogdmFsLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSA9PT0gMikge1xyXG4gICAgICAgIC8v5oqK5Lqn57q/5YC85Lyg5Yiw5a2Q57uE5Lu2XHJcbiAgICAgICAgdGhpcy5jdXN0b21lckluZm9zWkhCID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBQcmludFR5cGU6IDEsXHJcbiAgICAgICAgICAgIFByb2R1Y3RMaW5lOiB2YWwsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcblxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgfSxcclxuXHJcbiAgICAgZ2V0dmVoaWNsZU1vZGVsKClcclxuICAgIHtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgICBcIi9hcGkvbmV3aml0L2RpYy9saXN0XCIsdGhpcy52ZWhpY2xlTW9kZWxRdWVyeVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnZlaGljbGVNb2RlbExpc3QgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJyaWdodFwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1ZmNjMzU5JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTM1ZmNjMzU5Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMzVmY2MzNTlcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a988\n')},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},d8a5:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8b51");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_35fcc359_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvaW5kZXgudnVlPzExNTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBIiwiZmlsZSI6ImQ4YTUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P3JlZi0tOS1vbmVPZi0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tOS1vbmVPZi0xLTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MzVmY2MzNTkmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d8a5\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e1b4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3JlcGVhdFIxMDAvZGV0YWlsLnZ1ZT8wNWM2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImUxYjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///e1b4\n")},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-62062bae.7d0067f4.js b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-62062bae.7d0067f4.js index 24e57f4..dcdf603 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-62062bae.7d0067f4.js +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-62062bae.7d0067f4.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-62062bae"],{"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},"271b":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT81MmVhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI3MWIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///271b\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},"37a2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("271b");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT84NTQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIzN2EyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU1NjQ3ZmQ4Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///37a2\n')},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"73f2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("aa2e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YWI0ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiNzNmMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDJmZmQ2ZmEmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73f2\n')},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDREEsSUFBSSwwREFBTSxnQkFBZ0IsYUFBYSwwQkFBMEIsd0JBQXdCLHVCQUF1QixhQUFhLHlDQUF5QyxTQUFTLHdHQUF3RyxLQUFLLGtDQUFrQyxtQkFBbUIsMkJBQTJCLFlBQVksYUFBYSx3QkFBd0IsaUNBQWlDLHNDQUFzQyx5QkFBeUIsZ0VBQWdFLHFCQUFxQixVQUFVLGVBQWUsT0FBTyxVQUFVLGtCQUFrQixPQUFPLDJCQUEyQixLQUFLLDBCQUEwQixrQ0FBa0MsUUFBUSxvREFBb0QscUNBQXFDLGtDQUFrQyx1Q0FBdUMsdUJBQXVCLDBCQUEwQiwwQ0FBMEMsRUFBRSxnRUFBZ0UsT0FBTyxVQUFVLGtFQUFrRSxPQUFPLFVBQVUsa0JBQWtCLE9BQU8sd0JBQXdCLEtBQUssMEJBQTBCLG1DQUFtQyxRQUFRLG9EQUFvRCxxQ0FBcUMsa0NBQWtDO0FBQ2w1QztBQUNBO0FBQ0Esa0NBQWtDLHVCQUF1QixzQkFBc0IsdUNBQXVDLEVBQUUsc0VBQXNFLE9BQU8sVUFBVSwrREFBK0QsT0FBTyxVQUFVLGtCQUFrQixPQUFPLG9CQUFvQixLQUFLLDBCQUEwQix3Q0FBd0MsUUFBUSxpREFBaUQsa0NBQWtDLCtCQUErQiw2Q0FBNkMsdUJBQXVCLHVCQUF1Qix1Q0FBdUMsRUFBRSwrQkFBK0IsT0FBTyxVQUFVLGVBQWUsT0FBTztBQUN2dEI7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1EQUFtRCxPQUFPLHVCQUF1QixRQUFRLGdEQUFnRCxpQ0FBaUMsOEJBQThCLG1EQUFtRCxPQUFPLHVDQUF1QyxRQUFRLGdEQUFnRCxpQ0FBaUMsOEJBQThCLDBDQUEwQyx1QkFBdUIsOEJBQThCLHVEQUF1RCxFQUFFLDJEQUEyRCxPQUFPLHdCQUF3QixRQUFRLGdEQUFnRCxpQ0FBaUMsOEJBQThCLDBDQUEwQyx1QkFBdUIsc0JBQXNCLHNDQUFzQyxFQUFFO0FBQzc1QjtBQUNBO0FBQ0EscUNBQXFDLGFBQWEscUJBQXFCLFFBQVE7QUFDL0U7QUFDQSx3TEFBd0wsUUFBUSxnREFBZ0QsaUNBQWlDLDhCQUE4QiwwREFBMEQsT0FBTyxvQkFBb0IsUUFBUSxtREFBbUQsb0NBQW9DLGlDQUFpQywrQ0FBK0MsdUJBQXVCLHlCQUF5Qix5Q0FBeUMsRUFBRTtBQUM5b0I7QUFDQTtBQUNBLHdDQUF3QywyQ0FBMkMsNEJBQTRCLDBCQUEwQiw0Q0FBNEMsS0FBSyxnQ0FBZ0MsaUJBQWlCLE9BQU8sd0JBQXdCLFFBQVEsZ0RBQWdELGlDQUFpQyw4QkFBOEIsbUJBQW1CLDRCQUE0QixVQUFVLFVBQVUsMkNBQTJDLHlCQUF5QixpQ0FBaUMsU0FBUyxrQkFBa0IsYUFBYSw0RUFBNEUsNkNBQTZDLGFBQWEsbUJBQW1CLDJDQUEyQyxPQUFPLGNBQWMsS0FBSyx1QkFBdUIsaUNBQWlDLG1DQUFtQyxnQkFBZ0IsZUFBZSxrQkFBa0IsSUFBSSwwQkFBMEIsa0NBQWtDLE9BQU8saUJBQWlCLEtBQUssMkJBQTJCO0FBQ25qQyxJQUFJLG1FQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDOE1uQjtDQUVBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxlQURBO0FBRUE7QUFDQSw2REFEQSxDQUVBO0FBQ0E7QUFDQTs7QUFKQSxHQUZBO0FBUUE7QUFDQTtBQUNBLG1CQURBO0FBRUEsb0JBRkE7QUFHQTtBQUhBLEtBREE7QUFNQTtBQUNBLGlCQURBO0FBRUEsb0JBRkE7QUFHQTtBQUNBO0FBQ0E7QUFMQSxLQU5BO0FBYUE7QUFDQSxrQkFEQTtBQUVBLG9CQUZBO0FBR0E7QUFDQTtBQUNBO0FBTEEsS0FiQTs7QUFvQkE7QUFDQTtBQUNBLGtCQURBO0FBRUE7QUFGQSxLQXJCQTtBQXlCQTtBQUNBO0FBQ0EsbUJBREE7QUFFQTtBQUZBO0FBMUJBLEdBUkE7QUF1Q0EsTUF2Q0Esa0JBdUNBO0FBQ0E7QUFDQSxjQURBO0FBRUEsb0JBRkE7QUFHQSx1QkFIQTtBQUlBLHdCQUpBO0FBSUE7QUFDQSx3QkFMQTtBQUtBO0FBQ0Esb0JBTkEsQ0FNQTs7QUFOQTtBQVFBLEdBaERBO0FBaURBO0FBQ0E7QUFDQSxhQURBLG1CQUNBLEdBREEsRUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLDJCQURBO0FBRUEsc0JBRkE7QUFHQSw4QkFIQTtBQUlBLDZCQUpBO0FBS0EsdUJBTEE7QUFNQSx1QkFOQTtBQU9BLDhCQVBBO0FBUUEsNEJBUkE7QUFTQSw4QkFUQTtBQVVBLHdCQVZBO0FBV0EsMEJBWEE7QUFZQTtBQUNBLHlCQURBO0FBRUEsd0JBRkE7QUFHQTtBQUhBO0FBWkE7QUFrQkE7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQTdCQTtBQThCQSxnQkE5QkE7QUErQkE7QUEvQkEsS0FEQTtBQW1DQSxRQW5DQSxrQkFtQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUF4Q0EsR0FqREE7QUEyRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFKQSwwQkFJQSxJQUpBLEVBSUEsUUFKQSxFQUlBO0FBQ0E7QUFDQSxLQU5BO0FBT0EsY0FQQSxzQkFPQSxJQVBBLEVBT0EsUUFQQSxFQU9BO0FBQ0E7QUFDQSxLQVRBO0FBVUEsY0FWQSxzQkFVQSxJQVZBLEVBVUEsUUFWQSxFQVVBO0FBQ0E7QUFDQSxLQVpBOztBQWNBO0FBQ0E7QUFDQTtBQUNBLHFCQWpCQSw2QkFpQkEsUUFqQkEsRUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUZBO0FBR0E7QUFDQSxPQUxBLE1BS0E7QUFDQTtBQUNBOztBQUNBO0FBQ0EsS0EzQkE7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBaENBLDRCQWdDQSxJQWhDQSxFQWdDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BSEEsTUFHQTtBQUNBO0FBQ0E7QUFDQSxLQXZDQTs7QUF5Q0E7QUFDQTtBQUNBO0FBQ0Esb0JBNUNBLDRCQTRDQSxRQTVDQSxFQTRDQTtBQUNBLFVBQ0Esc0JBQ0Esc0JBREEsSUFFQSwyQkFGQSxJQUdBLHNCQUhBLElBSUEseUJBTEEsRUFNQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQXZEQTs7QUF3REE7QUFDQSx1QkF6REEsK0JBeURBLFFBekRBLEVBeURBLElBekRBLEVBeURBO0FBQ0E7QUFDQSxVQUNBLHdCQUNBLG9CQURBLElBRUEsc0JBSEEsQ0FJQTtBQUNBO0FBTEEsUUFNQTtBQUNBLGdCQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQURBLEVBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkE7QUFJQSxPQVhBLENBWUE7QUFaQSxXQWFBLElBQ0Esd0JBQ0Esa0JBREEsSUFFQSxzQkFIQSxFQUlBO0FBQ0EsZ0JBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FGQSxFQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FIQSxFQUlBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FKQTtBQU1BLE9BWEEsQ0FZQTtBQVpBLFdBYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FQQSxFQVFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FSQSxFQVNBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FUQSxFQVVBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FWQTtBQVlBLE9BYkEsTUFhQTtBQUNBLGdCQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FEQSxFQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0FGQTtBQUlBLE9BTEEsQ0FNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBYkEsV0FjQTtBQUNBO0FBQ0EsZ0JBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQURBLEVBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUZBLENBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWNBO0FBQ0EsS0FqSUE7O0FBa0lBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUF0SUEsdUJBc0lBLFFBdElBLEVBc0lBO0FBQ0E7QUFDQTtBQUNBLE9BRkE7O0FBR0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQSxTQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0EsU0FIQSxDQUlBO0FBSkEsYUFLQSxJQUNBLCtCQUNBLGlDQUZBLEVBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsT0FGQTtBQUdBLHNEQUNBO0FBQ0EsS0FsS0E7QUFtS0EsZ0JBbktBLHdCQW1LQSxRQW5LQSxFQW1LQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFBQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQTFCQTtBQTRCQSxLQWhNQTtBQWlNQSxlQWpNQSx1QkFpTUEsSUFqTUEsRUFpTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBLFVBQ0Esb0JBQ0EscUJBREEsSUFFQSwyQkFIQSxFQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0E5TUE7O0FBK01BO0FBQ0E7QUFDQTtBQUNBLGdCQWxOQSwwQkFrTkE7QUFDQTtBQUNBLEtBcE5BOztBQXFOQTtBQUNBO0FBQ0E7QUFDQSxpQkF4TkEsMkJBd05BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FIQSxNQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBTEEsTUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FMQSxDQU1BO0FBTkEsZUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0Esa0NBREE7QUFFQSw0QkFGQTtBQUdBLDBCQUhBO0FBSUEsZ0NBSkE7QUFLQTtBQUxBO0FBT0EsU0FSQSxNQVFBO0FBQ0E7QUFDQSxrQ0FEQTtBQUVBLDRCQUZBO0FBR0EsNkJBSEE7QUFJQSwyQkFKQTtBQUtBLGdDQUxBO0FBTUE7QUFOQTtBQVFBLFNBVEEsTUFTQTtBQUNBO0FBQ0Esa0NBREE7QUFFQSw0QkFGQTtBQUdBLDBCQUhBO0FBSUEsZ0NBSkE7QUFLQTtBQUxBO0FBT0EsU0FSQSxNQVFBO0FBQ0EsMkRBREEsQ0FDQTs7QUFDQTtBQUNBLGtDQURBO0FBRUEsNEJBRkE7QUFHQSx3QkFIQTtBQUlBLGdDQUpBO0FBS0E7QUFMQTtBQU9BLFNBVEEsQ0FVQTtBQVZBLGFBV0E7QUFDQTtBQUNBLGtDQURBO0FBRUEsNEJBRkE7QUFHQSwwQkFIQTtBQUlBLGdDQUpBO0FBS0Esa0NBTEE7QUFNQTtBQU5BO0FBUUE7O0FBQ0E7QUFDQSxPQWpEQTtBQWtEQTtBQUNBLGtCQURBO0FBRUEsdUJBRkE7QUFHQSxxQ0FIQTtBQUlBLHFDQUpBO0FBS0E7QUFMQTtBQU9BO0FBQ0E7QUFDQSxLQTFUQTs7QUEyVEE7QUFDQTtBQUNBO0FBQ0EsYUE5VEEsdUJBOFRBO0FBQUE7O0FBQ0E7QUFFQSxxQkFGQTtBQUdBLHdCQUhBO0FBSUEsdUJBSkE7QUFLQSxpQkFMQTtBQU1BLGlCQU5BO0FBT0E7QUFQQSxnRkFRQSxFQVJBLHlFQVNBLEVBVEEsNEVBVUEsRUFWQSw4RUFXQSxFQVhBLHdFQVlBLEVBWkEsMEVBYUEsRUFiQSxzRUFjQSxFQWRBO0FBaUJBLEtBaFZBOztBQWlWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQXJWQSx3QkFxVkEsS0FyVkEsRUFxVkE7QUFBQTs7QUFDQTtBQUNBLCtCQURBO0FBRUEsOEJBRkE7QUFHQTtBQUhBLFNBS0EsSUFMQSxDQUtBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBRkE7O0FBR0EsMkRBQ0E7QUFDQSxTQVJBO0FBU0EsT0FoQkEsRUFpQkEsS0FqQkEsQ0FpQkE7QUFDQTtBQUNBLHNCQURBO0FBRUE7QUFGQTtBQUlBLE9BdEJBO0FBdUJBO0FBN1dBO0FBM0ZBLEc7O0FDdE80VyxDQUFnQixvSEFBRyxFQUFDLEM7Ozs7Ozs7O0FDQWhTO0FBQ3ZDO0FBQ0w7QUFDc0M7OztBQUcxRjtBQUNtRztBQUNuRyxnQkFBZ0IsOENBQVU7QUFDMUIsRUFBRSw2Q0FBTTtBQUNSLEVBQUUsMERBQU07QUFDUixFQUFFLG1FQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVlLGdFOztBQ25CZixJQUFJLDZEQUFNLGdCQUFnQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLHNCQUFzQixXQUFXLG1CQUFtQixnREFBZ0QsZ0JBQWdCLGtDQUFrQyxnMUJBQWcxQixxQ0FBcUMseUJBQXlCLHVDQUF1QyxJQUFJO0FBQ3pyQyxJQUFJLHNFQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMwQm5CO0FBQ0EsdUJBREE7QUFFQTtBQUNBO0FBQ0Esa0JBREE7QUFFQSxvQkFGQTtBQUdBO0FBQ0E7QUFDQTtBQUxBO0FBREEsR0FGQTtBQVdBLE1BWEEsa0JBV0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFEQTtBQUVBLG9CQUZBO0FBR0Esc0JBSEE7QUFJQSwwQkFKQTtBQUtBLHdCQUxBO0FBTUEsc0JBTkE7QUFPQSxvQkFQQTtBQVFBLHdCQVJBO0FBU0EsZ0JBVEE7QUFVQSxrQkFWQTtBQVdBLGdCQVhBO0FBWUEsbUJBWkE7QUFhQSxnQkFiQTtBQWNBO0FBZEEsT0FGQTtBQWtCQTtBQUNBO0FBbkJBO0FBcUJBLEdBakNBO0FBa0NBLGNBbENBO0FBbUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEEsR0FuQ0E7QUF3Q0EsU0F4Q0EscUJBd0NBO0FBQ0E7QUFDQSxHQTFDQTtBQTJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBTEEsd0JBS0EsSUFMQSxFQUtBLEtBTEEsRUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0EsS0FUQTtBQVVBO0FBQ0EsZ0JBWEEsd0JBV0EsSUFYQSxFQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQTtBQUdBO0FBQ0E7O0FBQ0E7QUFDQSxLQW5CQTtBQW9CQSxnQkFwQkEsd0JBb0JBLElBcEJBLEVBb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FMQTtBQU1BO0FBQ0EsS0E3QkE7QUE4QkE7QUFDQSxpQkEvQkEseUJBK0JBLElBL0JBLEVBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FGQTs7QUFHQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTs7QUFDQTtBQUNBLEtBMUNBO0FBMkNBLGlCQTNDQSx5QkEyQ0EsSUEzQ0EsRUEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxBO0FBTUE7QUFDQSxLQXBEQTtBQXFEQSxpQkFyREEseUJBcURBLElBckRBLEVBcURBO0FBQ0E7QUFDQSxLQXZEQTtBQXdEQSxtQkF4REEsMkJBd0RBLElBeERBLEVBeURBO0FBQ0E7QUFDQTtBQTNEQTtBQTNDQSxHOztBQzNCb1gsQ0FBZ0IsMEhBQUcsRUFBQyxDOzs7OztBQ0FoUztBQUN2QztBQUNMO0FBQ3NDOzs7QUFHbEc7QUFDbUc7QUFDbkcsSUFBSSx1QkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsZ0RBQU07QUFDUixFQUFFLDZEQUFNO0FBQ1IsRUFBRSxzRUFBZTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFZSx5RUFBUyxROztBQ25CeEIsSUFBSSx3REFBTSxnQkFBZ0IsYUFBYSwwQkFBMEIsd0JBQXdCLHVCQUF1QixPQUFPLDJFQUEyRSxLQUFLLGtDQUFrQyxtQkFBbUIsMkJBQTJCLFlBQVkseUJBQXlCLHVDQUF1Qyx5QkFBeUIsWUFBWSw2QkFBNkIsZ0JBQWdCLDhCQUE4QixvQkFBb0IsT0FBTyx3Q0FBd0MsS0FBSyxzQ0FBc0MsUUFBUSxrREFBa0QscUJBQXFCLDRCQUE0QixZQUFZLG1DQUFtQyw4QkFBOEIscUNBQXFDLCtGQUErRiw4QkFBOEIsb0RBQW9ELDBDQUEwQyxrQ0FBa0MsWUFBWSxrQ0FBa0Msc0RBQXNELG9CQUFvQixxQ0FBcUMsZ0JBQWdCLEtBQUssaUNBQWlDLFFBQVEsNENBQTRDLDZCQUE2QiwwQkFBMEIsWUFBWSw2QkFBNkIsd0NBQXdDLCtCQUErQixvQkFBb0IsT0FBTyxrQkFBa0IsS0FBSyw2QkFBNkIsVUFBVSxxQ0FBcUMseUJBQXlCLGdEQUFnRCx5QkFBeUIsT0FBTyxrQkFBa0IsaUJBQWlCLHNFQUFzRSxrQkFBa0IsYUFBYSxxQkFBcUIsUUFBUSwrQkFBK0Isa0VBQWtFLEtBQUssc0JBQXNCLFFBQVEscURBQXFELHdCQUF3QiwrQkFBK0IsbURBQW1ELDBDQUEwQyxrQ0FBa0MsWUFBWSxrQ0FBa0Msc0RBQXNELG9CQUFvQixrQ0FBa0MsaUNBQWlDLFFBQVEsNENBQTRDLDZCQUE2QiwwQkFBMEIsWUFBWSw2QkFBNkIsd0NBQXdDLCtCQUErQixVQUFVLCtCQUErQix5QkFBeUIsNkNBQTZDLFVBQVUsaUNBQWlDLHlCQUF5QiwrQ0FBK0Msb0JBQW9CLElBQUksNkJBQTZCLFVBQVUscUNBQXFDLHlCQUF5QixnREFBZ0QseUJBQXlCLE9BQU8sa0JBQWtCLGlCQUFpQixzRUFBc0UsdUJBQXVCLGdDQUFnQyxrQkFBa0IsOENBQThDLDREQUE0RCxRQUFRLDJDQUEyQyxLQUFLLHlCQUF5QixtQ0FBbUMsVUFBVSxtREFBbUQsb0JBQW9CLCtDQUErQywyREFBMkQsUUFBUSwwQ0FBMEMsS0FBSyx5QkFBeUIsb0NBQW9DLFVBQVUsb0RBQW9ELGtCQUFrQiw2QkFBNkIsZ0JBQWdCLDhCQUE4QixvQkFBb0IsT0FBTyx5Q0FBeUMsS0FBSyx1Q0FBdUMsUUFBUSxtREFBbUQsc0JBQXNCLDZCQUE2QixZQUFZLG1DQUFtQyw4QkFBOEIscUNBQXFDLGlHQUFpRyw4QkFBOEIsa0JBQWtCLGFBQWEscUJBQXFCLFFBQVEsZ0NBQWdDLGtFQUFrRSxLQUFLLHVCQUF1QixRQUFRLHNEQUFzRCx5QkFBeUIsZ0NBQWdDLG9EQUFvRCxxQkFBcUIsa0NBQWtDLG9CQUFvQiwyQ0FBMkMsb0JBQW9CLEtBQUssa0NBQWtDLFFBQVEsNENBQTRDLDZCQUE2QiwwQkFBMEIsWUFBWSw2QkFBNkIsa0NBQWtDLHlCQUF5Qix5QkFBeUIsWUFBWSxpQ0FBaUMseUJBQXlCLG1DQUFtQyxJQUFJLCtCQUErQiw4QkFBOEIsa0JBQWtCLFVBQVUseUJBQXlCLGtDQUFrQyxpQ0FBaUMsT0FBTyxpQkFBaUIsV0FBVyx5QkFBeUIsbUNBQW1DLDBDQUEwQyxPQUFPLDJMQUEyTCxLQUFLLHdDQUF3QywyQkFBMkIsMENBQTBDLDJCQUEyQixpQ0FBaUM7QUFDMzBMLElBQUksaUVBQWU7Ozs7Ozs7Ozs7QUNEbkIsSUFBSSwyREFBTSxnQkFBZ0IsYUFBYSwwQkFBMEIsd0JBQXdCLHVCQUF1QixPQUFPLGtHQUFrRyxLQUFLLGtDQUFrQyxtQkFBbUIsMkJBQTJCLFlBQVksbUNBQW1DLFlBQVkseUJBQXlCLGtDQUFrQyxpQ0FBaUMsK0NBQStDLFFBQVEsOENBQThDLHdEQUF3RCx3QkFBd0IsZ0JBQWdCLHlCQUF5QixpQ0FBaUMsc0NBQXNDLCtCQUErQixnRUFBZ0UscUJBQXFCLFVBQVUsZUFBZSxPQUFPLFVBQVUsa0JBQWtCLE9BQU8sMkJBQTJCLEtBQUssMEJBQTBCLGtDQUFrQyxRQUFRLG9EQUFvRCxxQ0FBcUMsa0NBQWtDLHVDQUF1Qyx1QkFBdUIsMEJBQTBCLDBDQUEwQyxFQUFFLGtJQUFrSSxPQUFPLFVBQVUsb0lBQW9JLE9BQU8sVUFBVSxrQkFBa0IsT0FBTyxzQkFBc0IsUUFBUSxvREFBb0QscUNBQXFDLGtDQUFrQyw4RUFBOEUsdUJBQXVCLHNCQUFzQix1Q0FBdUMsRUFBRSxzRUFBc0UsT0FBTyxVQUFVLCtEQUErRCxPQUFPLFVBQVUsa0JBQWtCLE9BQU8sb0JBQW9CLEtBQUssMEJBQTBCLHdDQUF3QyxRQUFRLGlEQUFpRCxrQ0FBa0MsK0JBQStCLDZDQUE2Qyx1QkFBdUIsdUJBQXVCLHVDQUF1QyxFQUFFLCtCQUErQixPQUFPLFVBQVUsZUFBZSxPQUFPLGtGQUFrRixtREFBbUQsT0FBTyx3QkFBd0IsUUFBUSxnREFBZ0QsaUNBQWlDLDhCQUE4QiwwQ0FBMEMsdUJBQXVCLGdCQUFnQiwyQkFBMkIsRUFBRSwyREFBMkQsT0FBTyx3QkFBd0IsUUFBUSxnREFBZ0QsaUNBQWlDLDhCQUE4QiwwQ0FBMEMsdUJBQXVCLHNCQUFzQixzQ0FBc0MsRUFBRSw2RkFBNkYsYUFBYSxxQkFBcUIsUUFBUSxpT0FBaU8sUUFBUSxnREFBZ0QsaUNBQWlDLDhCQUE4QiwwREFBMEQsT0FBTyxvQkFBb0IsUUFBUSxtREFBbUQsb0NBQW9DLGlDQUFpQywrQ0FBK0MsdUJBQXVCLHlCQUF5Qix5Q0FBeUMsRUFBRSxvQkFBb0IsT0FBTyx3QkFBd0IsUUFBUSxnREFBZ0QsaUNBQWlDLDhCQUE4QixtQkFBbUIsNEJBQTRCLFVBQVUsVUFBVSwyQ0FBMkMseUJBQXlCLGlDQUFpQyxTQUFTLGtCQUFrQixhQUFhLDRFQUE0RSw2Q0FBNkMsYUFBYSxtQkFBbUIsMkNBQTJDLE9BQU8sY0FBYyxLQUFLLHVCQUF1QixpQ0FBaUMsbUJBQW1CLFlBQVksMkJBQTJCLG9CQUFvQixPQUFPLGlEQUFpRCxvQkFBb0IsMkJBQTJCLG9DQUFvQyxtQ0FBbUMsZ0JBQWdCLGVBQWUsa0JBQWtCLElBQUksMEJBQTBCLGtDQUFrQyxPQUFPLGlCQUFpQixLQUFLLDJCQUEyQjtBQUM3aUssSUFBSSxvRUFBZTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzZKbkI7QUFDQTtDQUlBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0EscUJBREE7QUFDQTtBQUNBLGVBQ0E7QUFEQSxHQUZBO0FBS0E7QUFDQTtBQUNBLG1CQURBO0FBRUEsb0JBRkE7QUFHQTtBQUhBLEtBREE7QUFNQTtBQUNBLGlCQURBO0FBRUEsb0JBRkE7QUFHQTtBQUNBO0FBQ0E7QUFMQSxLQU5BO0FBYUE7QUFDQSxrQkFEQTtBQUVBO0FBQ0E7QUFDQSxPQUpBO0FBS0E7QUFMQSxLQWJBOztBQW9CQTtBQUNBO0FBQ0Esa0JBREE7QUFFQTtBQUZBLEtBckJBOztBQXlCQTtBQUNBO0FBQ0Esa0JBREE7QUFFQTtBQUZBLEtBMUJBO0FBOEJBO0FBQ0EsbUJBREE7QUFFQTtBQUZBLEtBOUJBO0FBa0NBO0FBQ0Esa0JBREE7QUFFQTtBQUZBO0FBbENBLEdBTEE7QUE0Q0EsTUE1Q0Esa0JBNENBO0FBQ0E7QUFDQSxjQURBO0FBRUEsb0JBRkE7QUFFQTtBQUNBLHVCQUhBO0FBSUEsd0JBSkE7QUFJQTtBQUNBLG9CQUxBLENBS0E7O0FBTEE7QUFPQSxHQXBEQTtBQXFEQTtBQUNBO0FBQ0EsYUFEQSxtQkFDQSxHQURBLEVBQ0E7QUFBQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFEQSx1Q0FFQSxLQUZBO0FBR0E7O0FBQ0E7O0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQSxlQUZBLE1BRUE7QUFDQTtBQUNBLGVBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFGQTs7QUFHQTtBQUNBO0FBQ0EsbUJBRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBZEEsTUFjQTtBQUNBO0FBQ0EsZUFGQSxNQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBaENBOztBQUVBO0FBQUE7QUErQkE7QUFDQSxXQWxDQSxNQWtDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7OztBQUNBO0FBQ0E7QUFDQSxXQUZBLE1BRUE7QUFDQTtBQUNBOztBQUNBO0FBQ0E7QUFDQSxXQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQTFEQTtBQTJEQSxnQkEzREE7QUE0REE7QUE1REEsS0FEQTtBQWdFQSxRQWhFQSxrQkFnRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUhBO0FBSUE7QUFyRUEsR0FyREE7QUE0SEE7QUFDQSxXQURBLHFCQUNBO0FBQ0E7QUFDQSxxQkFEQTtBQUVBLGdCQUZBO0FBR0Esb0JBSEE7QUFJQSx1QkFKQTtBQUtBLGlCQUxBO0FBTUEsc0JBTkE7QUFPQSx3QkFQQTtBQVFBLGtCQVJBO0FBU0E7QUFUQTtBQVdBLEtBYkE7O0FBY0E7QUFDQTtBQUNBO0FBQ0EscUJBakJBLDZCQWlCQSxRQWpCQSxFQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBRkE7QUFHQTtBQUNBLE9BTEEsTUFLQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNCQTs7QUE0QkE7QUFDQTtBQUNBO0FBQ0EsbUJBL0JBLDJCQStCQSxJQS9CQSxFQStCQTtBQUNBO0FBQ0E7QUFDQSxPQUZBLE1BRUE7QUFDQTtBQUNBO0FBQ0EsS0FyQ0E7O0FBc0NBO0FBQ0EsdUJBdkNBLCtCQXVDQSxRQXZDQSxFQXVDQSxJQXZDQSxFQXVDQTtBQUNBLFVBQ0Esd0JBQ0Esc0JBREEsSUFFQSxrQkFGQSxJQUdBLHlCQUpBLEVBS0E7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkE7QUFJQSxPQVZBLE1BVUEsSUFDQSx3QkFDQSxrQkFEQSxJQUVBLHNCQUhBLEVBSUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkE7QUFNQSxPQVhBLE1BV0E7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},"9e7c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=template&id=e5647fd8&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"总成编码","prop":"erpAssemblyCode"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成编码","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "erpAssemblyCode", $$v)},expression:"listQuery.erpAssemblyCode"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"总成名称","prop":"erpAssemblyName"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成名称","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.listQuery, "erpAssemblyName", $$v)},expression:"listQuery.erpAssemblyName"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"长描述","prop":"groupCode"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入长描述","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.groupCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "groupCode", $$v)},expression:"listQuery.groupCode"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"车型:","prop":"vehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"创建时间"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\', \'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.createTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "createTimeValue", $$v)},expression:"listQuery.createTimeValue"}})],1),_c(\'el-form-item\',{staticClass:"formitem"},[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")])],1),_c(\'el-form-item\',{staticStyle:{"margin-bottom":"0px"}},[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","disabled":""},on:{"click":_vm.handleCreate}},[_vm._v("新增 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-edit","disabled":""},on:{"click":_vm.handleUpdate}},[_vm._v("修改 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-delete","disabled":""},on:{"click":_vm.handleDelete}},[_vm._v("删除 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","disabled":""},on:{"click":_vm.handleImportSAP}},[_vm._v("导入(SAP对接) ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"44px"}}),_c(\'el-table-column\',{attrs:{"label":"ERP总成编码","prop":"erpAssemblyCode","sortable":"custom","align":"center","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.erpAssemblyCode))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"width":"700px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event},"close":_vm.closeDialog}},[_c(\'el-form\',{ref:"form",attrs:{"inline":true,"model":_vm.form,"rules":_vm.rules,"size":"small","label-width":"120px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"总成编码:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"erpAssemblyCode"}},[_c(\'el-input\',{staticStyle:{"width":"400px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.form, "erpAssemblyCode", $$v)},expression:"form.erpAssemblyCode"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"总成名称:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"erpAssemblyName"}},[_c(\'el-input\',{staticStyle:{"width":"400px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.form, "erpAssemblyName", $$v)},expression:"form.erpAssemblyName"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"车型:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"vehicleModel"}},[_c(\'el-select\',{staticStyle:{"width":"200px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.vehicleModel),callback:function ($$v) {_vm.$set(_vm.form, "vehicleModel", $$v)},expression:"form.vehicleModel"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1)],1)],1),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"DetialTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.details,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.partCode),callback:function ($$v) {_vm.$set(scope.row, "partCode", $$v)},expression:"scope.row.partCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.description),callback:function ($$v) {_vm.$set(scope.row, "description", $$v)},expression:"scope.row.description"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量","width":"120px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input-number\',{staticStyle:{"width":"100px"},attrs:{"min":1,"size":"mini"},model:{value:(scope.row.partNum),callback:function ($$v) {_vm.$set(scope.row, "partNum", $$v)},expression:"scope.row.partNum"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件","align":"center","width":"80px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-checkbox\',{model:{value:(scope.row.isKey),callback:function ($$v) {_vm.$set(scope.row, "isKey", $$v)},expression:"scope.row.isKey"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddDetails}})],1)],2)],1)],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogFormVisible = false}}},[_vm._v("取消")]),_c(\'el-button\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.formLoading),expression:"formLoading"}],attrs:{"type":"primary"},on:{"click":function($event){return _vm.save()}}},[_vm._v("确认")])],1)],1)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.maxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "maxResultCount", $event)},"pagination":_vm.getList}}),_c(\'importExcel\',{ref:"importexcel",attrs:{"show":_vm.showExcelImport,"crmType":_vm.crmType},on:{"close":_vm.importExcelData}})],1),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=template&id=e5647fd8&scoped=true&\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportTxt/index.vue + 4 modules\nvar ImportTxt = __webpack_require__("00a5");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=template&id=02ffd6fa&scoped=true&\nvar detailvue_type_template_id_02ffd6fa_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'flexbox\',{staticClass:"content-header"}),_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [(scope.row.isKey == true)?_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#00b46d"}},[_vm._v("是")])]):_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#d75c89"}},[_vm._v("否")])])]}}])})],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_02ffd6fa_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=template&id=02ffd6fa&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n //OrgID:"",\n SkipCount: 0,\n MaxResultCount: 15,\n assemblyProductID: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList(this.searchContent);\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "客户零件代码",\n prop: "partCode ",\n width: 120\n });\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 160\n });\n tempsTabs.push({\n label: "是否Key件",\n prop: "isKey",\n width: 95\n });\n tempsTabs.push({\n label: "描述",\n prop: "description",\n width: 280\n });\n return tempsTabs;\n }\n },\n methods: {\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "isKey") {\n return {\n 0: "未生效",\n 1: "已生效"\n }[row[column.property]];\n }\n\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList(partCode) {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + this.customerInfo.parentId).then(function (response) {\n console.log(partCode);\n\n if (partCode !== "" && partCode !== undefined) {\n //console.log(partCode)\n _this2.list = response.item.details.filter(function (u) {\n return u.partCode === partCode;\n });\n } else {\n _this2.list = response.item.details;\n } //alert(JSON.stringify(response.Items))\n //this.totalCount = response.totalCount;\n\n\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n } //console.log(this.searchContent)\n\n\n this.getList(this.searchContent);\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var assemblyCfg_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=style&index=0&id=02ffd6fa&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true_ = __webpack_require__("73f2");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n assemblyCfg_detailvue_type_script_lang_js_,\n detailvue_type_template_id_02ffd6fa_scoped_true_render,\n detailvue_type_template_id_02ffd6fa_scoped_true_staticRenderFns,\n false,\n null,\n "02ffd6fa",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var assemblyCfgvue_type_script_lang_js_ = ({\n name: "AssemblyCfgERP",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportTxt["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return {\n crmType: "AssemblyCfgERP",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n createTimeValue: [],\n beginCreateTime: undefined,\n endCreateTime: undefined,\n skipCount: 0,\n maxResultCount: 15,\n erpAssemblyName: undefined,\n erpAssemblyCode: undefined,\n vehicleModel: undefined\n },\n vehicleModelQuery: {\n dicTypeName: "派格车型"\n },\n form: {\n details: []\n },\n page: 1,\n // 显示搜索条件\n showSearch: true,\n bomUnit: bomUnit,\n multipleSelection: [],\n dialogFormVisible: false,\n formTitle: "",\n isEdit: false,\n formLoading: false,\n tableHeight: document.documentElement.clientHeight - 280,\n detailTableHeight: 250,\n details: [],\n //修改子表数据源\n vehicleModelList: [] //车型list\n\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n //this.$refs.form.rendered=true;\n //console.log(boxH);\n //console.log(this.tableHeight);\n });\n },\n created: function created() {\n this.getvehicleModel();\n this.getList();\n },\n computed: {\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 180\n });\n tempsTabs.push({\n label: "长描述",\n prop: "groupCode",\n width: 240\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModel",\n width: 120\n });\n tempsTabs.push({\n label: "创建时间",\n prop: "creationTime",\n width: 100\n });\n return tempsTabs;\n }\n },\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n save: function save() {\n var _this2 = this;\n\n //console.log(this.$refs.form);\n this.$refs.form.validate(function (valid) {\n if (valid) {\n console.log("保存参数:" + JSON.stringify(_this2.form));\n _this2.formLoading = true;\n\n if (_this2.isEdit) {\n //修改\n _this2.$axios.puts("/api/newjit/assembly-cfg-erp/" + _this2.form.id, _this2.form).then(function (response) {\n _this2.formLoading = false;\n\n _this2.$notify({\n title: "成功",\n message: "更新成功",\n type: "success",\n duration: 2000\n });\n\n _this2.dialogFormVisible = false;\n\n _this2.getList();\n }).catch(function () {\n _this2.formLoading = false;\n });\n } else {\n //insert添加\n console.log(JSON.stringify(_this2.form));\n\n _this2.$axios.posts("/api/newjit/assembly-cfg-erp", _this2.form).then(function (response) {\n _this2.formLoading = false;\n\n _this2.$notify({\n title: "成功",\n message: "新增成功",\n type: "success",\n duration: 2000\n });\n\n _this2.dialogFormVisible = false;\n\n _this2.getList();\n }).catch(function () {\n _this2.formLoading = false;\n });\n }\n }\n });\n },\n\n /** 新增 */\n handleCreate: function handleCreate() {\n var _this3 = this;\n\n if (this.$refs["form"] !== undefined) {\n this.$nextTick(function () {\n //this.$refs["form"] = [];\n _this3.$refs["form"].resetFields();\n });\n }\n\n this.formTitle = "新增";\n this.isEdit = false;\n this.form = {};\n this.details = []; //this.getvehicleModel();\n\n this.dialogFormVisible = true;\n },\n\n /** 修改 */\n handleUpdate: function handleUpdate(row) {\n this.formTitle = "修改";\n this.isEdit = true;\n this.details = []; //this.getvehicleModel();\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } else {\n this.fetchData(this.multipleSelection[0].id);\n this.dialogFormVisible = true;\n }\n },\n\n /** 删除 */\n handleDelete: function handleDelete(row) {\n var _this4 = this;\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } // this.$alert("暂时不支持批量删除", "提示", {\n // confirmButtonText: "确定",\n // callback: (action) => {\n // //\n // },\n // });\n\n\n this.$confirm("是否删除总成" + this.multipleSelection[0].erpAssemblyCode + "?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this4.$axios.deletes("/api/newjit/assembly-cfg-erp/" + _this4.multipleSelection[0].id).then(function (response) {\n var index = _this4.list.indexOf(_this4.multipleSelection[0]);\n\n _this4.$notify({\n title: "成功",\n message: "删除成功",\n type: "success",\n duration: 2000\n });\n\n _this4.getList();\n });\n }).catch(function () {\n _this4.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n },\n fetchData: function fetchData(id) {\n var _this5 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + id).then(function (response) {\n _this5.form = response.item; //this.details = response.item.details;\n //console.log(this.details);\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this6 = this;\n\n this.listLoading = true;\n console.log(JSON.stringify(this.listQuery));\n this.$axios.posts("/api/newjit/assembly-cfg-erp/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this6.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this6.listLoading = false;\n });\n });\n this.listLoading = false;\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.$refs[refName].resetFields();\n this.getvehicleModel();\n this.handleQuery();\n this.listQuery.createTimeValue = [];\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.skipCount = 1;\n this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.listLoading = false;\n this.showExcelImport = false;\n this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /*添加明细空行*/\n handleAddDetails: function handleAddDetails() {\n this.$forceUpdate();\n\n if (this.form.details === undefined) {\n this.form.details = []; //console.log(679);\n }\n\n var obj = {};\n obj.partCode = "";\n obj.description = "";\n obj.partNum = "";\n obj.isKey = false;\n obj.description = ""; //console.log(this.form.details);\n\n this.form.details.push(obj); //console.log(688);\n },\n handleDeleteDetails: function handleDeleteDetails(index) {\n this.form.details.splice(index, 1); //console.log(693);\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList() {\n var _this7 = this;\n\n this.listLoading = true;\n console.log("创建时间:" + JSON.stringify(this.listQuery));\n this.listQuery.skipCount = (this.page - 1) * 10;\n\n if (this.listQuery.createTimeValue !== undefined) {\n this.listQuery.beginCreateTime = this.listQuery.createTimeValue[0];\n this.listQuery.endCreateTime = this.listQuery.createTimeValue[1];\n }\n\n this.$axios.gets("/api/newjit/assembly-cfg-erp/list", this.listQuery).then(function (response) {\n _this7.list = response.items;\n _this7.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this7.listLoading = false;\n }, 500);\n }).catch(function () {\n _this7.listLoading = false;\n });\n },\n getDetialList: function getDetialList(partCode) {\n var _this8 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + this.customerInfo.parentId).then(function (response) {\n console.log(partCode);\n\n if (partCode !== "" && partCode !== undefined) {\n //console.log(partCode)\n _this8.list = response.item.details.filter(function (u) {\n return u.partCode === partCode;\n });\n } else {\n _this8.list = response.item.details;\n } //alert(JSON.stringify(response.Items))\n //this.totalCount = response.totalCount;\n\n\n setTimeout(function () {\n //大数据量加载时\n _this8.listLoading = false;\n }, 500);\n }).catch(function () {\n _this8.listLoading = false;\n });\n },\n valueselectChange: function valueselectChange() {},\n handleImportSAP: function handleImportSAP() {\n //导入\n this.showExcelImport = true;\n this.$refs.importexcel.handleImportExcelClick();\n },\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n getvehicleModel: function getvehicleModel() {\n var _this9 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this9.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n closeDialog: function closeDialog() {//this.multipleSelection = [];//清空数据\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_assemblyCfgvue_type_script_lang_js_ = (assemblyCfgvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=style&index=0&id=e5647fd8&lang=scss&scoped=true&\nvar assemblyCfgvue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true_ = __webpack_require__("37a2");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar assemblyCfg_component = Object(componentNormalizer["a" /* default */])(\n basedate_assemblyCfgvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "e5647fd8",\n null\n \n)\n\n/* harmony default export */ var assemblyCfg = __webpack_exports__["default"] = (assemblyCfg_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT8yODExIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvYXNzZW1ibHlDZmcvZGV0YWlsLnZ1ZT9jMWE2Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/MWVjZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YzU4YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/NzllOSIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9hc3NlbWJseUNmZy9pbmRleC52dWU/YzA5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT9jZjY2Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvYXNzZW1ibHlDZmcvaW5kZXgudnVlPzlmY2UiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsK0JBQStCLHlDQUF5QyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSxzREFBc0QsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSwrREFBK0QsZ0RBQWdELHlDQUF5Qyx5QkFBeUIsK0JBQStCLHlDQUF5QyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSxzREFBc0QsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0Ms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LE1BR0E7QUFBQSxVQUZBLFFBRUEsUUFGQSxRQUVBO0FBQUEsVUFEQSxXQUNBLFFBREEsV0FDQTs7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLE9BSkEsTUFJQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0EsS0FyV0E7O0FBc1dBO0FBQ0Esa0JBdldBLGlDQTRXQTtBQUFBLFVBSkEsR0FJQSxTQUpBLEdBSUE7QUFBQSxVQUhBLE1BR0EsU0FIQSxNQUdBO0FBQUEsVUFGQSxRQUVBLFNBRkEsUUFFQTtBQUFBLFVBREEsV0FDQSxTQURBLFdBQ0E7O0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUE7QUFGQTtBQUlBLE9BTEEsTUFLQTtBQUNBO0FBQ0EsMkJBREE7QUFFQTtBQUZBO0FBSUE7QUFDQSxLQXhYQTtBQXlYQSxrQkF6WEEsMEJBeVhBLEdBelhBLEVBeVhBLE1BelhBLEVBeVhBLEtBelhBLEVBeVhBO0FBQ0E7QUFDQTtBQUNBLEtBNVhBO0FBNlhBLG1CQTdYQSw2QkE2WEE7QUFBQTs7QUFDQSxrQkFDQSxJQURBLENBQ0Esc0JBREEsRUFDQSxzQkFEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0EsZ0RBRkEsQ0FHQTtBQUNBLE9BTkEsRUFPQSxLQVBBLENBT0EsY0FQQTtBQVFBLEtBdFlBO0FBdVlBLGVBdllBLHlCQXVZQSxDQUNBO0FBQ0E7QUF6WUE7QUF4SUEsRzs7QUNsTzRXLENBQWdCLG9IQUFHLEVBQUMsQzs7Ozs7QUNBaFM7QUFDdkM7QUFDTDtBQUNzQzs7O0FBRzFGO0FBQ21HO0FBQ25HLElBQUkscUJBQVMsR0FBRyw4Q0FBVTtBQUMxQixFQUFFLDRDQUFNO0FBQ1IsRUFBRSxNQUFNO0FBQ1IsRUFBRSxlQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVlLHNHQUFTLFEiLCJmaWxlIjoiOWU3Yy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2Rpdicse3JlZjpcImJveFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9LFtfYygnZWwtZm9ybScse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnNob3dTZWFyY2gpLGV4cHJlc3Npb246XCJzaG93U2VhcmNoXCJ9XSxyZWY6XCJxdWVyeUZvcm1cIixhdHRyczp7XCJtb2RlbFwiOl92bS5saXN0UXVlcnksXCJpbmxpbmVcIjp0cnVlfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcmltaXRlbVwiLGF0dHJzOntcImxhYmVsXCI6XCLmgLvmiJDnvJbnoIFcIixcInByb3BcIjpcImVycEFzc2VtYmx5Q29kZVwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl5oC75oiQ57yW56CBXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5lcnBBc3NlbWJseUNvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5Q29kZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7c3RhdGljQ2xhc3M6XCJmb3JpbWl0ZW1cIixhdHRyczp7XCJsYWJlbFwiOlwi5oC75oiQ5ZCN56ewXCIsXCJwcm9wXCI6XCJlcnBBc3NlbWJseU5hbWVcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeaAu+aIkOWQjeensFwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJlcnBBc3NlbWJseU5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5lcnBBc3NlbWJseU5hbWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse3N0YXRpY0NsYXNzOlwiZm9yaW1pdGVtXCIsYXR0cnM6e1wibGFiZWxcIjpcIumVv+aPj+i/sFwiLFwicHJvcFwiOlwiZ3JvdXBDb2RlXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaXplb/mj4/ov7BcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5Lmdyb3VwQ29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiZ3JvdXBDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuZ3JvdXBDb2RlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcmltaXRlbVwiLGF0dHJzOntcImxhYmVsXCI6XCLovablnovvvJpcIixcInByb3BcIjpcInZlaGljbGVNb2RlbENvZGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkudmVoaWNsZU1vZGVsQ29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwidmVoaWNsZU1vZGVsQ29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5Yib5bu65pe26Ze0XCJ9fSxbX2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM4MHB4XCJ9LGF0dHJzOntcInNpemVcIjpcInNtYWxsXCIsXCJ2YWx1ZS1mb3JtYXRcIjpcInl5eXktTU0tZGQgSEg6bW06c3NcIixcInR5cGVcIjpcImRhdGV0aW1lcmFuZ2VcIixcImRlZmF1bHQtdGltZVwiOlsnMDA6MDA6MDAnLCAnMjM6NTk6NTknXSxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiY3JlYXRlVGltZVZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcm1pdGVtXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCkgXCIpXSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIwcHhcIn19LFtfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItaXRlbVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tcGx1c1wiLFwiZGlzYWJsZWRcIjpcIlwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDcmVhdGV9fSxbX3ZtLl92KFwi5paw5aKeIFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1lZGl0XCIsXCJkaXNhYmxlZFwiOlwiXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZVVwZGF0ZX19LFtfdm0uX3YoXCLkv67mlLkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLWRlbGV0ZVwiLFwiZGlzYWJsZWRcIjpcIlwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVEZWxldGV9fSxbX3ZtLl92KFwi5Yig6ZmkIFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1wbHVzXCIsXCJkaXNhYmxlZFwiOlwiXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUltcG9ydFNBUH19LFtfdm0uX3YoXCLlr7zlhaXvvIhTQVDlr7nmjqXvvIkgXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwic2VsZWN0aW9uXCIsXCJ3aWR0aFwiOlwiNDRweFwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJsYWJlbFwiOlwiRVJQ5oC75oiQ57yW56CBXCIsXCJwcm9wXCI6XCJlcnBBc3NlbWJseUNvZGVcIixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxODBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cuZXJwQXNzZW1ibHlDb2RlKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMiksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nRm9ybVZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpfdm0uZm9ybVRpdGxlLFwid2lkdGhcIjpcIjcwMHB4XCJ9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nRm9ybVZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmNsb3NlRGlhbG9nfX0sW19jKCdlbC1mb3JtJyx7cmVmOlwiZm9ybVwiLGF0dHJzOntcImlubGluZVwiOnRydWUsXCJtb2RlbFwiOl92bS5mb3JtLFwicnVsZXNcIjpfdm0ucnVsZXMsXCJzaXplXCI6XCJzbWFsbFwiLFwibGFiZWwtd2lkdGhcIjpcIjEyMHB4XCJ9fSxbX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaAu+aIkOe8luegge+8mlwiLFwicmVxdWlyZWRcIjpcIlwifX0pXSwxKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjIwfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseUNvZGVcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiNDAwcHhcIn0sYXR0cnM6e1wiZGlzYWJsZWRcIjpfdm0uaXNFZGl0fSxtb2RlbDp7dmFsdWU6KF92bS5mb3JtLmVycEFzc2VtYmx5Q29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5mb3JtLCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybS5lcnBBc3NlbWJseUNvZGVcIn19KV0sMSldLDEpXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5oC75oiQ5ZCN56ew77yaXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MjB9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcInByb3BcIjpcImVycEFzc2VtYmx5TmFtZVwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI0MDBweFwifSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5pc0VkaXR9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0uZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwiZXJwQXNzZW1ibHlOYW1lXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLmVycEFzc2VtYmx5TmFtZVwifX0pXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLovablnovvvJpcIixcInJlcXVpcmVkXCI6XCJcIn19KV0sMSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoyMH19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wicHJvcFwiOlwidmVoaWNsZU1vZGVsXCJ9fSxbX2MoJ2VsLXNlbGVjdCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyMDBweFwifSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5pc0VkaXR9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0udmVoaWNsZU1vZGVsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwidmVoaWNsZU1vZGVsXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZlaGljbGVNb2RlbFwifX0sX3ZtLl9sKChfdm0udmVoaWNsZU1vZGVsTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0uZGljSXRlbU5hbWUsXCJ2YWx1ZVwiOml0ZW0uZGljSXRlbUNvZGV9fSl9KSwxKV0sMSldLDEpXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLXRhYmxlJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJsb2FkaW5nXCIscmF3TmFtZTpcInYtbG9hZGluZ1wiLHZhbHVlOihfdm0ubGlzdExvYWRpbmcpLGV4cHJlc3Npb246XCJsaXN0TG9hZGluZ1wifV0scmVmOlwiRGV0aWFsVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5mb3JtLmRldGFpbHMsXCJoZWlnaHRcIjpfdm0uZGV0YWlsVGFibGVIZWlnaHQsXCJjZWxsLXN0eWxlXCI6X3ZtLmNlbGxTdHlsZSxcImhlYWRlci1jZWxsLXN0eWxlXCI6X3ZtLmhlYWRlclJvd1N0eWxlLFwic2l6ZVwiOlwic21hbGxcIixcInN0cmlwZVwiOlwiXCIsXCJib3JkZXJcIjpcIlwiLFwiaGlnaGxpZ2h0LWN1cnJlbnQtcm93XCI6XCJcIn0sb246e1wicm93LWNsaWNrXCI6X3ZtLmhhbmRsZVJvd0NsaWNrfX0sW19jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0Q29kZVwiLFwibGFiZWxcIjpcIuWuouaIt+mbtuS7tuS7o+eggVwiLFwid2lkdGhcIjpcIjE1MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTM1cHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5wYXJ0Q29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJwYXJ0Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LnBhcnRDb2RlXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJkZXNjcmlwdGlvblwiLFwibGFiZWxcIjpcIuWuouaIt+mbtuS7tuWQjeensFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5kZXNjcmlwdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJkZXNjcmlwdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmRlc2NyaXB0aW9uXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0TnVtXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25pWw6YePXCIsXCJ3aWR0aFwiOlwiMTIwcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dC1udW1iZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibWluXCI6MSxcInNpemVcIjpcIm1pbmlcIn0sbW9kZWw6e3ZhbHVlOihzY29wZS5yb3cucGFydE51bSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJwYXJ0TnVtXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cucGFydE51bVwifX0pXX19XSl9KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCI4MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5pc0tleSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJpc0tleVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmlzS2V5XCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJkZXNjcmlwdGlvblwiLFwid2lkdGhcIjpcIjM1cHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZURldGFpbHMoc2NvcGUuJGluZGV4LCBzY29wZS5yb3cpfX19KV19fV0pfSxbX2MoJ3RlbXBsYXRlJyx7c2xvdDpcImhlYWRlclwifSxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tcGx1c1wiLFwidHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGREZXRhaWxzfX0pXSwxKV0sMildLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGlhbG9nLWZvb3RlclwiLGF0dHJzOntcInNsb3RcIjpcImZvb3RlclwifSxzbG90OlwiZm9vdGVyXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2V9fX0sW192bS5fdihcIuWPlua2iFwiKV0pLF9jKCdlbC1idXR0b24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5mb3JtTG9hZGluZyksZXhwcmVzc2lvbjpcImZvcm1Mb2FkaW5nXCJ9XSxhdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnNhdmUoKX19fSxbX3ZtLl92KFwi56Gu6K6kXCIpXSldLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkubWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJtYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KSxfYygnaW1wb3J0RXhjZWwnLHtyZWY6XCJpbXBvcnRleGNlbFwiLGF0dHJzOntcInNob3dcIjpfdm0uc2hvd0V4Y2VsSW1wb3J0LFwiY3JtVHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJjbG9zZVwiOl92bS5pbXBvcnRFeGNlbERhdGF9fSldLDEpLF9jKCdlbC1kcmF3ZXInLHthdHRyczp7XCJ0aXRsZVwiOlwi5L+h5oGv6K+m57uG6aG1XCIsXCJzaXplXCI6XCI3NSVcIixcImRpcmVjdGlvblwiOlwicnRsXCIsXCJ2aXNpYmxlXCI6X3ZtLmRyYXdlcixcImJlZm9yZS1jbG9zZVwiOl92bS5oYW5kbGVEcmF3ZXJDbG9zZX0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kcmF3ZXI9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ0RldGFpbCcse3N0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi0zNXB4XCJ9LGF0dHJzOntcImN1c3RvbWVySW5mb3NcIjpfdm0uY3VzdG9tZXJJbmZvc319KV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9KSxfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImRlc2NyaXB0aW9uXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25ZCN56ewXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gWyhzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZSk/X2MoJ3NwYW4nLFtfYygnc3Bhbicse3N0YXRpY1N0eWxlOntcImNvbG9yXCI6XCIjMDBiNDZkXCJ9fSxbX3ZtLl92KFwi5pivXCIpXSldKTpfYygnc3BhbicsW19jKCdzcGFuJyx7c3RhdGljU3R5bGU6e1wiY29sb3JcIjpcIiNkNzVjODlcIn19LFtfdm0uX3YoXCLlkKZcIildKV0pXX19XSl9KV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0tRklT5Y+R6L+Q5pWw5o2u5a+55q+U6L6T5Ye66KGoLeaYjue7huaVsOaNri0tPlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgPGZsZXhib3ggY2xhc3M9XCJjb250ZW50LWhlYWRlclwiPlxyXG4gICAgICA8IS0tIDxlbC1idXR0b25cclxuICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgdHlwZT1cImluZm9cIlxyXG4gICAgICAgIGljb249XCJlbC1pY29uLWRvd25sb2FkXCJcclxuICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICA+5a+85Ye65YWo6YOoXHJcbiAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsPVwic2VhcmNoQ29udGVudFwiXHJcbiAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuaUr+aMgeaooeeziuaQnOe0oi4uLlwiXHJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjMwcHhcIlxyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiXHJcbiAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxyXG4gICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICA+5pCc57SiXHJcbiAgICAgIDwvZWwtYnV0dG9uPiAtLT5cclxuICAgIDwvZmxleGJveD5cclxuICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgIDxlbC10YWJsZVxyXG4gICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBzdHJpcGVcclxuICAgICAgYm9yZGVyXHJcbiAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnRDb2RlXCIgbGFiZWw9XCLlrqLmiLfpm7bku7bku6PnoIFcIj4gPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLlrqLmiLfpm7bku7blkI3np7BcIj4gPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnROdW1cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuaVsOmHj1wiPiA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiaXNLZXlcIiBsYWJlbD1cIuaYr+WQpktleeS7tlwiPlxyXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgIDxzcGFuIHYtaWY9XCJzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDBiNDZkXCI+5pivPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gdi1lbHNlPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjZDc1Yzg5XCI+5ZCmPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgPC9lbC10YWJsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgICAgPCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcbiAgICAgIDxwYWdpbmF0aW9uXHJcbiAgICAgICAgdi1zaG93PVwidG90YWxDb3VudCA+IDBcIlxyXG4gICAgICAgIDp0b3RhbD1cInRvdGFsQ291bnRcIlxyXG4gICAgICAgIDpwYWdlLnN5bmM9XCJwYWdlXCJcclxuICAgICAgICA6bGltaXQuc3luYz1cImxpc3RRdWVyeS5NYXhSZXN1bHRDb3VudFwiXHJcbiAgICAgICAgQHBhZ2luYXRpb249XCJnZXRMaXN0XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7IC8vIHNlY29uZGFyeSBwYWNrYWdlIGJhc2VkIG9uIGVsLXBhZ2luYXRpb25cclxuaW1wb3J0IHBlcm1pc3Npb24gZnJvbSBcIkAvZGlyZWN0aXZlL3Blcm1pc3Npb24vaW5kZXguanNcIjtcclxuaW1wb3J0IENSTVRhYmxlSGVhZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DUk1UYWJsZUhlYWRcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWxcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcInNlbmRVbnNldHRsZWREaWZmUmVwb3J0XCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcInN0b2NrRmlzRGlmZlJlcG9ydFwiLFxyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIC8v5YmN56uv5a6a5LmJ55qE6KeE5YiZ77yM5ZCO56uv5Lmf5pyJ6aqM6K+BXHJcbiAgICAgICAgZXJwTWF0ZXJpYWxDb2RlOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaENvbnRlbnQ6IFwiXCIsIC8vIOi+k+WFpeWGheWuuVxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBwYXJlbnRJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZm9ybToge1xyXG4gICAgICAgIGRpY0RldGFpbElEOiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVySWQ6IFwiXCIsXHJcbiAgICAgICAgcHJvamVjdElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0OiBudWxsLFxyXG4gICAgICB0b3RhbENvdW50OiAwLFxyXG4gICAgICBsaXN0TG9hZGluZzogdHJ1ZSxcclxuICAgICAgZm9ybUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAvLyDpq5jnuqfmkJzntKJcclxuICAgICAgZmlsdGVyT2JqOiB7XHJcbiAgICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0UXVlcnk6IHtcclxuICAgICAgICBGaWx0ZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGxvZ2ljOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW46IFwiRW5hYmxlZFwiLFxyXG4gICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBcInRydWVcIixcclxuICAgICAgICAgIH0sIC8v6buY6K6k5p+l6K+i5Y+v55So55qEXHJcbiAgICAgICAgXSxcclxuICAgICAgICAvL09yZ0lEOlwiXCIsXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBhc3NlbWJseVByb2R1Y3RJRDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMCxcclxuICAgICAgaXNFZGl0OiBmYWxzZSxcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgc2VsZi50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIDMwO1xyXG4gICAgfTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLmdldExpc3QoKTtcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIGhhbmRsZXIobmV3VmFsKSB7XHJcbiAgICAgICAgaWYgKG5ld1ZhbCA9PSBcIlwiIHx8IG5ld1ZhbCA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAvL1RPRE9cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3VmFsLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgPSBlbGVtZW50LlBhcmVudElkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgIT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QodGhpcy5zZWFyY2hDb250ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLyoqIOWIl+ihqOWtl+autSAqL1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICB2YXIgdGVtcHNUYWJzID0gW107XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25Luj56CBXCIsIHByb3A6IFwicGFydENvZGUgXCIsIHdpZHRoOiAxMjAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogMTYwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIuaYr+WQpktleeS7tlwiLCBwcm9wOiBcImlzS2V5XCIsIHdpZHRoOiA5NSB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLmj4/ov7BcIiwgcHJvcDogXCJkZXNjcmlwdGlvblwiLCB3aWR0aDogMjgwIH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8qKiDliLfmlrDliJfooaggKi9cclxuICAgIGhhbmRsZUhhbmRsZShkYXRhKSB7XHJcbiAgICAgIGlmIChkYXRhLnR5cGUgIT09IFwiZWRpdFwiKSB7XHJcbiAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5qC85byP5YyW5a2X5q61ICovXHJcbiAgICBmaWVsZEZvcm1hdHRlcihyb3csIGNvbHVtbikge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcImlzS2V5XCIpIHtcclxuICAgICAgICByZXR1cm4geyAwOiBcIuacqueUn+aViFwiLCAxOiBcIuW3sueUn+aViFwiIH1bcm93W2NvbHVtbi5wcm9wZXJ0eV1dO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KHBhcnRDb2RlKSB7XHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuivpuihqOadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHBhcnRDb2RlKVxyXG4gICAgICAgICAgaWYocGFydENvZGUgIT09IFwiXCIgJiYgcGFydENvZGUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhwYXJ0Q29kZSlcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5kZXRhaWxzLmZpbHRlcih1ID0+IHUucGFydENvZGUgPT09IHBhcnRDb2RlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5kZXRhaWxzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9hbGVydChKU09OLnN0cmluZ2lmeShyZXNwb25zZS5JdGVtcykpXHJcbiAgICAgICAgICAvL3RoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5zZWFyY2hDb250ZW50KVxyXG4gICAgICB0aGlzLmdldExpc3QodGhpcy5zZWFyY2hDb250ZW50KTtcclxuICAgIH0sXHJcbiAgICByZXNldFF1ZXJ5KCkge30sXHJcblxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLZzdHlsZSAqL1xyXG4gICAgY2VsbFN0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZmlzUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZGlmZlF0eVwiIHx8XHJcbiAgICAgICAgY29sdW1uLnByb3BlcnR5ID09PSBcInN0b2NrUXR5XCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuICAgIGhlYWRlclJvd1N0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZmlzUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZGlmZlF0eVwiIHx8XHJcbiAgICAgICAgY29sdW1uLnByb3BlcnR5ID09PSBcInN0b2NrUXR5XCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTAyZmZkNmZhJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTAyZmZkNmZhJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMDJmZmQ2ZmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8IS0t5oC75oiQ5qih5Z2X5L+h5oGv566h55CG6aG1LS0+XHJcbjx0ZW1wbGF0ZT5cclxuXHQ8ZGl2IGNsYXNzPVwiY3ItYm9keS1jb250ZW50XCI+XHJcblx0XHQ8ZGl2IHJlZj1cImJveFwiPlxyXG5cdFx0XHQ8ZmxleGJveCBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCI+XHJcblx0XHRcdFx0PGVsLWZvcm0gOm1vZGVsPVwibGlzdFF1ZXJ5XCIgcmVmPVwicXVlcnlGb3JtXCIgdi1zaG93PVwic2hvd1NlYXJjaFwiIDppbmxpbmU9XCJ0cnVlXCI+XHJcblx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57yW56CBXCIgcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiIGNsYXNzPVwiZm9yaW1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1pbnB1dCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5Q29kZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ57yW56CBXCIgY2xlYXJhYmxlIHNpemU9XCJzbWFsbFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuXHRcdFx0XHRcdFx0IEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiIC8+XHJcblx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHJcblx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ5ZCN56ewXCIgcHJvcD1cImVycEFzc2VtYmx5TmFtZVwiIGNsYXNzPVwiZm9yaW1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1pbnB1dCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5TmFtZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCIgY2xlYXJhYmxlIHNpemU9XCJzbWFsbFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuXHRcdFx0XHRcdFx0IEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiIC8+XHJcblx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIumVv+aPj+i/sFwiIHByb3A9XCJncm91cENvZGVcIiBjbGFzcz1cImZvcmltaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgdi1tb2RlbD1cImxpc3RRdWVyeS5ncm91cENvZGVcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpemVv+aPj+i/sFwiIGNsZWFyYWJsZSBzaXplPVwic21hbGxcIiBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcblx0XHRcdFx0XHRcdCBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIiAvPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei++8mlwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxDb2RlXCIgY2xhc3M9XCJmb3JpbWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGVsLXNlbGVjdCB2LW1vZGVsPVwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIiBjbGVhcmFibGUgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIiBzaXplPVwibWVkaXVtXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE1cHhcIlxyXG5cdFx0XHRcdFx0XHQgQGNoYW5nZT1cInZhbHVlc2VsZWN0Q2hhbmdlXCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLW9wdGlvbiB2LWZvcj1cIml0ZW0gaW4gdmVoaWNsZU1vZGVsTGlzdFwiIDprZXk9XCJpdGVtLmlkXCIgOmxhYmVsPVwiaXRlbS5kaWNJdGVtTmFtZVwiIDp2YWx1ZT1cIml0ZW0uZGljSXRlbUNvZGVcIiAvPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLXNlbGVjdD5cclxuXHRcdFx0XHRcdDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuXHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLliJvlu7rml7bpl7RcIj5cclxuXHRcdFx0XHRcdFx0PGVsLWRhdGUtcGlja2VyIHYtbW9kZWw9XCJsaXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlXCIgc2l6ZT1cInNtYWxsXCIgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIiB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuXHRcdFx0XHRcdFx0IHR5cGU9XCJkYXRldGltZXJhbmdlXCIgOmRlZmF1bHQtdGltZT1cIlsnMDA6MDA6MDAnLCAnMjM6NTk6NTknXVwiIHJhbmdlLXNlcGFyYXRvcj1cIi1cIiBzdGFydC1wbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXHJcblx0XHRcdFx0XHRcdCBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIj48L2VsLWRhdGUtcGlja2VyPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBjbGFzcz1cImZvcm1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1zZWFyY2hcIiBzaXplPVwibWluaVwiIEBjbGljaz1cImhhbmRsZUZpbHRlclwiPuaQnOe0ojwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtYnV0dG9uIGljb249XCJlbC1pY29uLXJlZnJlc2hcIiBzaXplPVwibWluaVwiIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCI+6YeN572uPC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gdHlwZT1cIndhcm5pbmdcIiBwbGFpbiBpY29uPVwiZWwtaWNvbi1kb3dubG9hZFwiIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTVweFwiIEBjbGljaz1cImhhbmRsZURvd25sb2FkKClcIj7lr7zlh7ooRXhjZWwpXHJcblx0XHRcdFx0XHRcdDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0XHQ8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjFcIiA+PC9lbC1kaXZpZGVyPiAtLT5cclxuXHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtYnV0dG9uIGNsYXNzPVwiZmlsdGVyLWl0ZW1cIiBzaXplPVwibWluaVwiIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImVsLWljb24tcGx1c1wiIEBjbGljaz1cImhhbmRsZUNyZWF0ZVwiIGRpc2FibGVkPuaWsOWinlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGVsLWJ1dHRvbiBjbGFzcz1cImZpbHRlci1pdGVtXCIgc2l6ZT1cIm1pbmlcIiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJlbC1pY29uLWVkaXRcIiBAY2xpY2s9XCJoYW5kbGVVcGRhdGVcIiBkaXNhYmxlZD7kv67mlLlcclxuXHRcdFx0XHRcdFx0PC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gY2xhc3M9XCJmaWx0ZXItaXRlbVwiIHNpemU9XCJtaW5pXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1kZWxldGVcIiBAY2xpY2s9XCJoYW5kbGVEZWxldGVcIiBkaXNhYmxlZD7liKDpmaRcclxuXHRcdFx0XHRcdFx0PC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gY2xhc3M9XCJmaWx0ZXItaXRlbVwiIHNpemU9XCJtaW5pXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1wbHVzXCIgQGNsaWNrPVwiaGFuZGxlSW1wb3J0U0FQXCIgZGlzYWJsZWQ+5a+85YWl77yIU0FQ5a+55o6l77yJXHJcblx0XHRcdFx0XHRcdDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0PC9lbC1mb3JtPlxyXG5cdFx0XHQ8L2ZsZXhib3g+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJsLXRhYmxlXCI+XHJcblx0XHRcdDwhLS3ooajmoLzmuLLmn5MtLT5cclxuXHRcdFx0PGVsLXRhYmxlIHJlZj1cIm11bHRpcGxlVGFibGVcIiB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCIgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG5cdFx0XHQgY2xhc3M9XCJjci10YWJsZVwiIDpkYXRhPVwibGlzdFwiIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCIgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG5cdFx0XHQgc2l6ZT1cInNtYWxsXCIgc3RyaXBlIGJvcmRlciBoaWdobGlnaHQtY3VycmVudC1yb3cgc3R5bGU9XCJ3aWR0aDogMTAwJVwiIEBzb3J0LWNoYW5nZT1cInNvcnRDaGFuZ2VcIiBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcblx0XHRcdCBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIj5cclxuXHRcdFx0XHQ8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj5cclxuXHJcblx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBsYWJlbD1cIkVSUOaAu+aIkOe8lueggVwiIHByb3A9XCJlcnBBc3NlbWJseUNvZGVcIiBzb3J0YWJsZT1cImN1c3RvbVwiIGFsaWduPVwiY2VudGVyXCIgd2lkdGg9XCIxODBweFwiPlxyXG5cdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxpbmstdHlwZVwiIEBjbGljaz1cImhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KVwiPnt7XHJcbiAgICAgICAgICAgICAgc2NvcGUucm93LmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gZ2V0RGVmYXVsdEZpZWxkXCIgOmtleT1cImluZGV4XCIgOnByb3A9XCJpdGVtLnByb3BcIiA6bGFiZWw9XCJpdGVtLmxhYmVsXCJcclxuXHRcdFx0XHQgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIiA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIiBzb3J0YWJsZT1cImN1c3RvbVwiIHNob3ctb3ZlcmZsb3ctdG9vbHRpcCA6Z3V0dGVyPVwiMFwiPlxyXG5cdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Q9XCJoZWFkZXJcIiBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0e3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcblx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxyXG5cdFx0XHRcdDwvZWwtdGFibGUtY29sdW1uPlxyXG5cdFx0XHQ8L2VsLXRhYmxlPlxyXG5cclxuXHRcdFx0PCEtLeihqOWNlea4suafky0tPlxyXG5cdFx0XHQ8ZWwtZGlhbG9nIDp2aXNpYmxlLnN5bmM9XCJkaWFsb2dGb3JtVmlzaWJsZVwiIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCIgOnRpdGxlPVwiZm9ybVRpdGxlXCIgd2lkdGg9XCI3MDBweFwiIEBjbG9zZT1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PGVsLWZvcm0gcmVmPVwiZm9ybVwiIDppbmxpbmU9XCJ0cnVlXCIgOm1vZGVsPVwiZm9ybVwiIDpydWxlcz1cInJ1bGVzXCIgc2l6ZT1cInNtYWxsXCIgbGFiZWwtd2lkdGg9XCIxMjBweFwiPlxyXG5cdFx0XHRcdFx0PGVsLXJvdz5cclxuXHRcdFx0XHRcdFx0PGVsLWNvbCA6c3Bhbj1cIjRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57yW56CB77yaXCIgcmVxdWlyZWQgLz5cclxuXHRcdFx0XHRcdFx0PC9lbC1jb2w+XHJcblx0XHRcdFx0XHRcdDxlbC1jb2wgOnNwYW49XCIyMFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGVsLWlucHV0IHN0eWxlPVwid2lkdGg6IDQwMHB4XCIgdi1tb2RlbD1cImZvcm0uZXJwQXNzZW1ibHlDb2RlXCIgOmRpc2FibGVkPVwiaXNFZGl0XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHRcdFx0XHRcdFx0PC9lbC1jb2w+XHJcblx0XHRcdFx0XHQ8L2VsLXJvdz5cclxuXHJcblx0XHRcdFx0XHQ8ZWwtcm93PlxyXG5cdFx0XHRcdFx0XHQ8ZWwtY29sIDpzcGFuPVwiNFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmgLvmiJDlkI3np7DvvJpcIiByZXF1aXJlZCAvPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWNvbD5cclxuXHRcdFx0XHRcdFx0PGVsLWNvbCA6c3Bhbj1cIjIwXCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBwcm9wPVwiZXJwQXNzZW1ibHlOYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgc3R5bGU9XCJ3aWR0aDogNDAwcHhcIiB2LW1vZGVsPVwiZm9ybS5lcnBBc3NlbWJseU5hbWVcIiA6ZGlzYWJsZWQ9XCJpc0VkaXRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDwvZWwtZm9ybS1pdGVtPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWNvbD5cclxuXHRcdFx0XHRcdDwvZWwtcm93PlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gPGVsLXJvdz5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57G75Z6L77yaXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIyMFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gcHJvcD1cImVycEFzc2VtYmx5VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDIwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uZXJwQXNzZW1ibHlUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgPC9lbC1yb3c+IC0tPlxyXG5cclxuXHRcdFx0XHRcdDxlbC1yb3c+XHJcblx0XHRcdFx0XHRcdDxlbC1jb2wgOnNwYW49XCI0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei++8mlwiIHJlcXVpcmVkIC8+XHJcblx0XHRcdFx0XHRcdDwvZWwtY29sPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtY29sIDpzcGFuPVwiMjBcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIHByb3A9XCJ2ZWhpY2xlTW9kZWxcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxlbC1zZWxlY3Qgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIiB2LW1vZGVsPVwiZm9ybS52ZWhpY2xlTW9kZWxcIiA6ZGlzYWJsZWQ9XCJpc0VkaXRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLW9wdGlvbiB2LWZvcj1cIml0ZW0gaW4gdmVoaWNsZU1vZGVsTGlzdFwiIDprZXk9XCJpdGVtLmlkXCIgOmxhYmVsPVwiaXRlbS5kaWNJdGVtTmFtZVwiIDp2YWx1ZT1cIml0ZW0uZGljSXRlbUNvZGVcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9lbC1zZWxlY3Q+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0XHRcdDwvZWwtY29sPlxyXG5cdFx0XHRcdFx0PC9lbC1yb3c+XHJcblx0XHRcdFx0XHQ8ZWwtcm93PlxyXG5cdFx0XHRcdFx0XHQ8ZWwtdGFibGUgcmVmPVwiRGV0aWFsVGFibGVcIiB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCIgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG5cdFx0XHRcdFx0XHQgY2xhc3M9XCJjci10YWJsZVwiIDpkYXRhPVwiZm9ybS5kZXRhaWxzXCIgOmhlaWdodD1cImRldGFpbFRhYmxlSGVpZ2h0XCIgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIiA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcblx0XHRcdFx0XHRcdCBzaXplPVwic21hbGxcIiBzdHJpcGUgYm9yZGVyIGhpZ2hsaWdodC1jdXJyZW50LXJvdyBzdHlsZT1cIndpZHRoOiAxMDAlXCIgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCI+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydENvZGVcIiBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiIHdpZHRoPVwiMTUwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cucGFydENvZGVcIiBzaXplPVwibWluaVwiIHN0eWxlPVwid2lkdGg6IDEzNXB4XCI+PC9lbC1pbnB1dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiZGVzY3JpcHRpb25cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuWQjeensFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5kZXNjcmlwdGlvblwiIHNpemU9XCJtaW5pXCI+PC9lbC1pbnB1dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydE51bVwiIGxhYmVsPVwi5a6i5oi36Zu25Lu25pWw6YePXCIgd2lkdGg9XCIxMjBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQtbnVtYmVyIHYtbW9kZWw9XCJzY29wZS5yb3cucGFydE51bVwiIDptaW49XCIxXCIgc2l6ZT1cIm1pbmlcIiBzdHlsZT1cIndpZHRoOiAxMDBweFwiPjwvZWwtaW5wdXQtbnVtYmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8L2VsLXRhYmxlLWNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJpc0tleVwiIGxhYmVsPVwi5piv5ZCmS2V55Lu2XCIgYWxpZ249XCJjZW50ZXJcIiB3aWR0aD1cIjgwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gbGFiZWwtY2xhc3MtbmFtZT1cIkRpc2FibGVkU2VsZWN0aW9uXCIg5Y676Zmk5YiX5aS05YWo6YCJLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGUgc2xvdC1zY29wZT1cInNjb3BlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxlbC1jaGVja2JveCB2LW1vZGVsPVwic2NvcGUucm93LmlzS2V5XCI+PC9lbC1jaGVja2JveD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJkZXNjcmlwdGlvblwiIGxhYmVsPVwi5o+P6L+wXCI+XHJcbiAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgPGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cuZGlzZGVzY3JpcHRpb25LZXlcIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiZGVzY3JpcHRpb25cIiB3aWR0aD1cIjM1cHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxlbC1idXR0b24gQGNsaWNrPVwiaGFuZGxlQWRkRGV0YWlsc1wiIGljb249XCJlbC1pY29uLXBsdXNcIiB0eXBlPVwidGV4dFwiPjwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVEZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLW1pbnVzXCIgdHlwZT1cInRleHRcIj48L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdDwvZWwtdGFibGU+XHJcblx0XHRcdFx0XHQ8L2VsLXJvdz5cclxuXHRcdFx0XHQ8L2VsLWZvcm0+XHJcblx0XHRcdFx0PCEtLeihqOagvOa4suafky0tPlxyXG5cdFx0XHRcdDxkaXYgc2xvdD1cImZvb3RlclwiIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxyXG5cdFx0XHRcdFx0PGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2VcIj7lj5bmtog8L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdDxlbC1idXR0b24gdi1sb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmUoKVwiPuehruiupDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2VsLWRpYWxvZz5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuXHRcdFx0PCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcblx0XHRcdDxwYWdpbmF0aW9uIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCIgOnRvdGFsPVwidG90YWxDb3VudFwiIDpwYWdlLnN5bmM9XCJwYWdlXCIgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkubWF4UmVzdWx0Q291bnRcIlxyXG5cdFx0XHQgQHBhZ2luYXRpb249XCJnZXRMaXN0XCIgLz5cclxuXHRcdFx0PCEtLSDlr7zlhaVFeGNlbOe7hOS7tiAtLT5cclxuXHRcdFx0PGltcG9ydEV4Y2VsIHJlZj1cImltcG9ydGV4Y2VsXCIgOnNob3c9XCJzaG93RXhjZWxJbXBvcnRcIiA6Y3JtVHlwZT1cImNybVR5cGVcIiBAY2xvc2U9XCJpbXBvcnRFeGNlbERhdGFcIiAvPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tIOaKveWxieaOp+S7tiAtLT5cclxuXHRcdDxlbC1kcmF3ZXIgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIiBzaXplPVwiNzUlXCIgZGlyZWN0aW9uPVwicnRsXCIgOnZpc2libGUuc3luYz1cImRyYXdlclwiIDpiZWZvcmUtY2xvc2U9XCJoYW5kbGVEcmF3ZXJDbG9zZVwiPlxyXG5cdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdDxEZXRhaWwgdi1iaW5kOmN1c3RvbWVySW5mb3M9XCJjdXN0b21lckluZm9zXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtMzVweFwiPjwvRGV0YWlsPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZWwtZHJhd2VyPlxyXG5cdDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjtcclxuXHRpbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5cdGltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcblx0aW1wb3J0IGltcG9ydEV4Y2VsIGZyb20gXCJAL2NvbXBvbmVudHMvSW1wb3J0VHh0XCI7XHJcblx0aW1wb3J0IExvY2tyIGZyb20gXCJsb2NrclwiO1xyXG5cdGltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cdGltcG9ydCBEZXRhaWwgZnJvbSBcIi4vZGV0YWlsLnZ1ZVwiO1xyXG5cdGltcG9ydCB7XHJcblx0XHRkb3dubG9hZEZpbGVcclxuXHR9IGZyb20gXCJAL3V0aWxzL2NybWluZGV4LmpzXCI7XHJcblxyXG5cdC8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcblx0Y29uc3QgYm9tVW5pdCA9IFt7XHJcblx0XHRcdGtleTogMCxcclxuXHRcdFx0ZGlzcGxheV9uYW1lOiBcIlBDXCJcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogMSxcclxuXHRcdFx0ZGlzcGxheV9uYW1lOiBcIlRPTlwiXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6IDIsXHJcblx0XHRcdGRpc3BsYXlfbmFtZTogXCJPdGhlclwiXHJcblx0XHR9LFxyXG5cdF07XHJcblx0Y29uc3QgcHJvamVjdFR5cGVLZXlWYWx1ZSA9IGJvbVVuaXQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xyXG5cdFx0YWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuXHRcdHJldHVybiBhY2M7XHJcblx0fSwge30pO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiBcIkFzc2VtYmx5Q2ZnRVJQXCIsXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFBhZ2luYXRpb24sXHJcblx0XHRcdENSTVRhYmxlSGVhZCxcclxuXHRcdFx0aW1wb3J0RXhjZWwsXHJcblx0XHRcdERldGFpbFxyXG5cdFx0fSxcclxuXHRcdGRpcmVjdGl2ZXM6IHtcclxuXHRcdFx0cGVybWlzc2lvblxyXG5cdFx0fSxcclxuXHRcdGZpbHRlcnM6IHtcclxuXHRcdFx0SXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcblx0XHRcdFx0Ly/nv7vor5HmmK/lkKbnrb7lrZdcclxuXHRcdFx0XHRjb25zdCBzdGF0dXNNYXAgPSB7XHJcblx0XHRcdFx0XHR0cnVlOiBcIuaYr1wiLFxyXG5cdFx0XHRcdFx0ZmFsc2U6IFwi5ZCmXCIsXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0Y29uc3QgdmFsaWRWZXJzaW9uID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4ge1xyXG5cdFx0XHRcdGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG5cdFx0XHRcdGlmICghbnVtYmVyUmVnLnRlc3QodmFsdWUpKSB7XHJcblx0XHRcdFx0XHRjYWxsYmFjayhuZXcgRXJyb3IoXCLlj6rog73kuLo25L2N5pWw5a2X77yBXCIpKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y3JtVHlwZTogXCJBc3NlbWJseUNmZ0VSUFwiLFxyXG5cdFx0XHRcdHJ1bGVzOiB7XHJcblx0XHRcdFx0XHRlcnBBc3NlbWJseU5hbWU6IFt7XHJcblx0XHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLFxyXG5cdFx0XHRcdFx0XHR0cmlnZ2VyOiBcImJsdXJcIlxyXG5cdFx0XHRcdFx0fSwgXSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHZhbHVlU2VsZWN0OiBcIlwiLFxyXG5cdFx0XHRcdGN1c3RvbWVySW5mb3M6IFtdLFxyXG5cdFx0XHRcdGRpYWxvZ09wdGlvbnM6IFtdLFxyXG5cdFx0XHRcdHZlcnNpb25WYWx1ZTogXCJcIixcclxuXHRcdFx0XHRzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuXHRcdFx0XHRzaG93RXhjZWxJbXBvcnQ6IGZhbHNlLFxyXG5cdFx0XHRcdGRyYXdlcjogZmFsc2UsXHJcblx0XHRcdFx0bGlzdDogbnVsbCxcclxuXHRcdFx0XHR0b3RhbENvdW50OiAwLFxyXG5cdFx0XHRcdGxpc3RMb2FkaW5nOiB0cnVlLFxyXG5cdFx0XHRcdGN1c3RvbWVySW5mbzoge1xyXG5cdFx0XHRcdFx0Ym9tSWQ6IFwiXCIsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQvLyDpq5jnuqfmkJzntKJcclxuXHRcdFx0XHRmaWx0ZXJPYmo6IHtcclxuXHRcdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRcdGRlZmF1bHQ6ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHt9O1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGxpc3RRdWVyeToge1xyXG5cdFx0XHRcdFx0Y3JlYXRlVGltZVZhbHVlOiBbXSxcclxuXHRcdFx0XHRcdGJlZ2luQ3JlYXRlVGltZTogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdFx0ZW5kQ3JlYXRlVGltZTogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdFx0c2tpcENvdW50OiAwLFxyXG5cdFx0XHRcdFx0bWF4UmVzdWx0Q291bnQ6IDE1LFxyXG5cdFx0XHRcdFx0ZXJwQXNzZW1ibHlOYW1lOiB1bmRlZmluZWQsXHJcblx0XHRcdFx0XHRlcnBBc3NlbWJseUNvZGU6IHVuZGVmaW5lZCxcclxuXHRcdFx0XHRcdHZlaGljbGVNb2RlbDogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdHZlaGljbGVNb2RlbFF1ZXJ5OiB7XHJcblx0XHRcdFx0XHRkaWNUeXBlTmFtZTogXCLmtL7moLzovablnotcIixcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZvcm06IHtcclxuXHRcdFx0XHRcdGRldGFpbHM6IFtdLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cGFnZTogMSxcclxuXHRcdFx0XHQvLyDmmL7npLrmkJzntKLmnaHku7ZcclxuXHRcdFx0XHRzaG93U2VhcmNoOiB0cnVlLFxyXG5cdFx0XHRcdGJvbVVuaXQsXHJcblxyXG5cdFx0XHRcdG11bHRpcGxlU2VsZWN0aW9uOiBbXSxcclxuXHJcblx0XHRcdFx0ZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG5cdFx0XHRcdGZvcm1UaXRsZTogXCJcIixcclxuXHRcdFx0XHRpc0VkaXQ6IGZhbHNlLFxyXG5cdFx0XHRcdGZvcm1Mb2FkaW5nOiBmYWxzZSxcclxuXHJcblx0XHRcdFx0dGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAyODAsXHJcblx0XHRcdFx0ZGV0YWlsVGFibGVIZWlnaHQ6IDI1MCxcclxuXHRcdFx0XHRkZXRhaWxzOiBbXSwgLy/kv67mlLnlrZDooajmlbDmja7mupBcclxuXHRcdFx0XHR2ZWhpY2xlTW9kZWxMaXN0OiBbXSwgLy/ovablnotsaXN0XHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2cob2Zmc2V0SGVpKTtcclxuXHRcdFx0XHRsZXQgYm94SCA9IHRoaXMuJHJlZnMuYm94Lm9mZnNldEhlaWdodDtcclxuXHRcdFx0XHR0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7IC8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG5cdFx0XHRcdC8vdGhpcy4kcmVmcy5mb3JtLnJlbmRlcmVkPXRydWU7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhib3hIKTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHRoaXMudGFibGVIZWlnaHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHR0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG5cdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRnZXREZWZhdWx0RmllbGQoKSB7XHJcblx0XHRcdFx0dmFyIHRlbXBzVGFicyA9IFtdO1xyXG5cdFx0XHRcdHRlbXBzVGFicy5wdXNoKHtcclxuXHRcdFx0XHRcdGxhYmVsOiBcIuaAu+aIkOWQjeensFwiLFxyXG5cdFx0XHRcdFx0cHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuXHRcdFx0XHRcdHdpZHRoOiAxODAsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGVtcHNUYWJzLnB1c2goe1xyXG5cdFx0XHRcdFx0bGFiZWw6IFwi6ZW/5o+P6L+wXCIsXHJcblx0XHRcdFx0XHRwcm9wOiBcImdyb3VwQ29kZVwiLFxyXG5cdFx0XHRcdFx0d2lkdGg6IDI0MCxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0ZW1wc1RhYnMucHVzaCh7XHJcblx0XHRcdFx0XHRsYWJlbDogXCLovablnovku6PnoIFcIixcclxuXHRcdFx0XHRcdHByb3A6IFwidmVoaWNsZU1vZGVsXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogMTIwLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRlbXBzVGFicy5wdXNoKHtcclxuXHRcdFx0XHRcdGxhYmVsOiBcIuWIm+W7uuaXtumXtFwiLFxyXG5cdFx0XHRcdFx0cHJvcDogXCJjcmVhdGlvblRpbWVcIixcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAsXHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHRcdHJldHVybiB0ZW1wc1RhYnM7XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvL+aKveWxiVxyXG5cdFx0XHRoYW5kbGVEcmF3ZXJPcGVuKHBhcmFtKSB7XHJcblx0XHRcdFx0dGhpcy5kcmF3ZXIgPSB0cnVlO1xyXG5cdFx0XHRcdHZhciBwYXJlbnRJZCA9IHBhcmFtLmlkOyAvL+S4u+mUrmlkXHJcblx0XHRcdFx0dGhpcy5jdXN0b21lckluZm9zID0gW3tcclxuXHRcdFx0XHRcdFBhcmVudElkOiBwYXJlbnRJZCxcclxuXHRcdFx0XHR9LCBdO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVEcmF3ZXJDbG9zZShkb25lKSB7XHJcblx0XHRcdFx0ZG9uZSgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzYXZlKCkge1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2codGhpcy4kcmVmcy5mb3JtKTtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoKHZhbGlkKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodmFsaWQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkv53lrZjlj4LmlbA6XCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmlzRWRpdCkge1xyXG5cdFx0XHRcdFx0XHRcdC8v5L+u5pS5XHJcblx0XHRcdFx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdFx0XHRcdC5wdXRzKFwiL2FwaS9uZXdqaXQvYXNzZW1ibHktY2ZnLWVycC9cIiArIHRoaXMuZm9ybS5pZCwgdGhpcy5mb3JtKVxyXG5cdFx0XHRcdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZm9ybUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuabtOaWsOaIkOWKn1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwic3VjY2Vzc1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHQvL2luc2VydOa3u+WKoFxyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybSkpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHRcdFx0XHQucG9zdHMoXCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctZXJwXCIsIHRoaXMuZm9ybSlcclxuXHRcdFx0XHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuJG5vdGlmeSh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi5oiQ5YqfXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZTogXCLmlrDlop7miJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOaWsOWiniAqL1xyXG5cdFx0XHRoYW5kbGVDcmVhdGUoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuJHJlZnNbXCJmb3JtXCJdICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly90aGlzLiRyZWZzW1wiZm9ybVwiXSA9IFtdO1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRyZWZzW1wiZm9ybVwiXS5yZXNldEZpZWxkcygpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZm9ybVRpdGxlID0gXCLmlrDlop5cIjtcclxuXHRcdFx0XHR0aGlzLmlzRWRpdCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuZm9ybSA9IHt9O1xyXG5cdFx0XHRcdHRoaXMuZGV0YWlscyA9IFtdO1xyXG5cdFx0XHRcdC8vdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOS/ruaUuSAqL1xyXG5cdFx0XHRoYW5kbGVVcGRhdGUocm93KSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtVGl0bGUgPSBcIuS/ruaUuVwiO1xyXG5cdFx0XHRcdHRoaXMuaXNFZGl0ID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLmRldGFpbHMgPSBbXTtcclxuXHRcdFx0XHQvL3RoaXMuZ2V0dmVoaWNsZU1vZGVsKCk7XHJcblx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG1lc3NhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmZldGNoRGF0YSh0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLmlkKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOWIoOmZpCAqL1xyXG5cdFx0XHRoYW5kbGVEZWxldGUocm93KSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG1lc3NhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB0aGlzLiRhbGVydChcIuaaguaXtuS4jeaUr+aMgeaJuemHj+WIoOmZpFwiLCBcIuaPkOekulwiLCB7XHJcblx0XHRcdFx0Ly8gICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuXHRcdFx0XHQvLyAgIGNhbGxiYWNrOiAoYWN0aW9uKSA9PiB7XHJcblx0XHRcdFx0Ly8gICAgIC8vXHJcblx0XHRcdFx0Ly8gICB9LFxyXG5cdFx0XHRcdC8vIH0pO1xyXG5cdFx0XHRcdHRoaXMuJGNvbmZpcm0oXHJcblx0XHRcdFx0XHRcdFwi5piv5ZCm5Yig6Zmk5oC75oiQXCIgKyB0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZSArIFwiP1wiLFxyXG5cdFx0XHRcdFx0XHRcIuaPkOekulwiLCB7XHJcblx0XHRcdFx0XHRcdFx0Y29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcblx0XHRcdFx0XHRcdFx0Y2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0LnRoZW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRheGlvc1xyXG5cdFx0XHRcdFx0XHRcdC5kZWxldGVzKFxyXG5cdFx0XHRcdFx0XHRcdFx0XCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctZXJwL1wiICsgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZFxyXG5cdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHQudGhlbigocmVzcG9uc2UpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhpcy5saXN0LmluZGV4T2YodGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXSk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLiRub3RpZnkoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZTogXCLliKDpmaTmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzdWNjZXNzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRtZXNzYWdlKHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcImluZm9cIixcclxuXHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuW3suWPlua2iOWIoOmZpFwiLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmZXRjaERhdGEoaWQpIHtcclxuXHRcdFx0XHQvL+W+queOr+WKqOaAgVxyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyBpZClcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtO1xyXG5cdFx0XHRcdFx0XHQvL3RoaXMuZGV0YWlscyA9IHJlc3BvbnNlLml0ZW0uZGV0YWlscztcclxuXHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyh0aGlzLmRldGFpbHMpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKiDlr7zlh7rlip/og70gKi9cclxuXHRcdFx0aGFuZGxlRG93bmxvYWQoKSB7XHJcblx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMubGlzdFF1ZXJ5KSk7XHJcblx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdC5wb3N0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvZXhwb3J0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG5cdFx0XHRcdFx0LnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuXHRcdFx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdFx0XHQuQm9sYkdldHMoXCIvYXBpL25ld2ppdC9leGNsdWRlLXBhcnQtY2ZnL2Rvd25sb2FkL1wiICsgZmlsZW5hbWUpXHJcblx0XHRcdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmlsZW5hbWUuaW5kZXhPZihcIl9cIikgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGRvd25OYW1lID1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlbmFtZS5zbGljZShmaWxlbmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb3dubG9hZEZpbGUocmVzcG9uc2UsIGRvd25OYW1lKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb3dubG9hZEZpbGUocmVzcG9uc2UsIGZpbGVuYW1lKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKiDph43nva7mjInpkq7mk43kvZwgKi9cclxuXHRcdFx0cmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcblx0XHRcdFx0dGhpcy4kcmVmc1tyZWZOYW1lXS5yZXNldEZpZWxkcygpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0dmVoaWNsZU1vZGVsKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVRdWVyeSgpO1xyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZSA9IFtdO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcblx0XHRcdGhhbmRsZVF1ZXJ5KCkge1xyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LnNraXBDb3VudCA9IDE7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHNlbGVjdFZhbHVlKHBhcmFtcykge1xyXG5cdFx0XHRcdC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcblx0XHRcdFx0dGhpcy52ZXJzaW9uVmFsdWUgPSBwYXJhbXMudmFsdWU7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RPcHRpb25zQ2hhbmdlKGl0ZW0pIHtcclxuXHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1wb3J0RXhjZWxEYXRhKCkge1xyXG5cdFx0XHRcdC8v5YWz6Zet5a+85YWl56qX5L2T5pe26LCD55SoXHJcblx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc2hvd0V4Y2VsSW1wb3J0ID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKiog5Yi35paw5YiX6KGoICovXHJcblx0XHRcdGhhbmRsZUhhbmRsZShkYXRhKSB7XHJcblx0XHRcdFx0aWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0TGlzdCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8q5re75Yqg5piO57uG56m66KGMKi9cclxuXHRcdFx0aGFuZGxlQWRkRGV0YWlscygpIHtcclxuXHRcdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cdFx0XHRcdGlmICh0aGlzLmZvcm0uZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uZGV0YWlscyA9IFtdO1xyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyg2NzkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgb2JqID0ge307XHJcblx0XHRcdFx0b2JqLnBhcnRDb2RlID0gXCJcIjtcclxuXHRcdFx0XHRvYmouZGVzY3JpcHRpb24gPSBcIlwiO1xyXG5cdFx0XHRcdG9iai5wYXJ0TnVtID0gXCJcIjtcclxuXHRcdFx0XHRvYmouaXNLZXkgPSBmYWxzZTtcclxuXHRcdFx0XHRvYmouZGVzY3JpcHRpb24gPSBcIlwiO1xyXG5cclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5kZXRhaWxzKTtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZGV0YWlscy5wdXNoKG9iaik7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyg2ODgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVEZWxldGVEZXRhaWxzKGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtLmRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKDY5Myk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKiog5qC85byP5YyW5a2X5q61ICovXHJcblx0XHRcdGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdDA6IFwi5pyq55Sf5pWIXCIsXHJcblx0XHRcdFx0XHRcdDI6IFwi5bey55Sf5pWIXCIsXHJcblx0XHRcdFx0XHRcdDM6IFwi5bey5Y+R5biDXCJcclxuXHRcdFx0XHRcdH0gW3Jvd1tjb2x1bW4ucHJvcGVydHldXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PSBcIm9ubGluZVRpbWVcIiB8fCBjb2x1bW4ucHJvcGVydHkgPT0gXCJyZWNlaXZlVGltZVwiKSB7XHJcblx0XHRcdFx0XHR2YXIgZGF0ZSA9IHJvd1tjb2x1bW4ucHJvcGVydHldO1xyXG5cdFx0XHRcdFx0aWYgKGRhdGUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tOnNzXCIpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV0gfHwgXCItLVwiO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRyb2xlRmlsdGVyKHR5cGUpIHtcclxuXHRcdFx0XHRyZXR1cm4gcHJvamVjdFR5cGVLZXlWYWx1ZVt0eXBlXTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TGlzdCgpIHtcclxuXHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuWIm+W7uuaXtumXtO+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuXHRcdFx0XHR0aGlzLmxpc3RRdWVyeS5za2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiAxMDtcclxuXHRcdFx0XHRpZiAodGhpcy5saXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmJlZ2luQ3JlYXRlVGltZSA9IHRoaXMubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZVswXTtcclxuXHRcdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmVuZENyZWF0ZVRpbWUgPSB0aGlzLmxpc3RRdWVyeS5jcmVhdGVUaW1lVmFsdWVbMV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuXHRcdFx0XHRcdFx0dGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Ly/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sIDUwMCk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Z2V0RGV0aWFsTGlzdChwYXJ0Q29kZSkge1xyXG5cdFx0XHRcdHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6K+m6KGo5p2h5Lu277yaXCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZCkpO1xyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhwYXJ0Q29kZSk7XHJcblx0XHRcdFx0XHRcdGlmIChwYXJ0Q29kZSAhPT0gXCJcIiAmJiBwYXJ0Q29kZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhwYXJ0Q29kZSlcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtLmRldGFpbHMuZmlsdGVyKFxyXG5cdFx0XHRcdFx0XHRcdFx0KHUpID0+IHUucGFydENvZGUgPT09IHBhcnRDb2RlXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtLmRldGFpbHM7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ly9hbGVydChKU09OLnN0cmluZ2lmeShyZXNwb25zZS5JdGVtcykpXHJcblx0XHRcdFx0XHRcdC8vdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Ly/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sIDUwMCk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHR2YWx1ZXNlbGVjdENoYW5nZSgpIHt9LFxyXG5cdFx0XHRoYW5kbGVJbXBvcnRTQVAoKSB7XHJcblx0XHRcdFx0Ly/lr7zlhaVcclxuXHRcdFx0XHR0aGlzLnNob3dFeGNlbEltcG9ydCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy5pbXBvcnRleGNlbC5oYW5kbGVJbXBvcnRFeGNlbENsaWNrKCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRoYW5kbGVGaWx0ZXIoKSB7XHJcblx0XHRcdFx0dGhpcy5wYWdlID0gMTtcclxuXHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHNvcnRDaGFuZ2UoZGF0YSkge1xyXG5cdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdHByb3AsXHJcblx0XHRcdFx0XHRvcmRlclxyXG5cdFx0XHRcdH0gPSBkYXRhO1xyXG5cdFx0XHRcdGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcblx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcblx0XHRcdGNlbGxTdHlsZSh7XHJcblx0XHRcdFx0cm93LFxyXG5cdFx0XHRcdGNvbHVtbixcclxuXHRcdFx0XHRyb3dJbmRleCxcclxuXHRcdFx0XHRjb2x1bW5JbmRleFxyXG5cdFx0XHR9KSB7XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0dGV4dEFsaWduOiBcInJpZ2h0XCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdHRleHRBbGlnbjogXCJsZWZ0XCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuXHRcdFx0aGVhZGVyUm93U3R5bGUoe1xyXG5cdFx0XHRcdHJvdyxcclxuXHRcdFx0XHRjb2x1bW4sXHJcblx0XHRcdFx0cm93SW5kZXgsXHJcblx0XHRcdFx0Y29sdW1uSW5kZXhcclxuXHRcdFx0fSkge1xyXG5cdFx0XHRcdGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwicXR5XCIpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdHRleHRBbGlnbjogXCJyaWdodFwiLFxyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIlxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0dGV4dEFsaWduOiBcImxlZnRcIixcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogXCIjRkFGQUZBXCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVSb3dDbGljayhyb3csIGNvbHVtbiwgZXZlbnQpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldHZlaGljbGVNb2RlbCgpIHtcclxuXHRcdFx0XHR0aGlzLiRheGlvc1xyXG5cdFx0XHRcdFx0LmdldHMoXCIvYXBpL25ld2ppdC9kaWMvbGlzdFwiLCB0aGlzLnZlaGljbGVNb2RlbFF1ZXJ5KVxyXG5cdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZlaGljbGVNb2RlbExpc3QgPSByZXNwb25zZS5pdGVtO1xyXG5cdFx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKClcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge30pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZURpYWxvZygpIHtcclxuXHRcdFx0XHQvL3RoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSBbXTsvL+a4heepuuaVsOaNrlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0QGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG5cclxuXHQvLyAvKuihqOagvOWFqOmAieahhuWOu+mZpOepuuahhiovXHJcblx0Ly8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGwgLmVsLWNoZWNrYm94X19pbm5lciB7XHJcblx0Ly8gICBkaXNwbGF5OiBub25lO1xyXG5cdC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC8vIH1cclxuXHQvLyAvKuihqOagvOWFqOmAieahhuaUueS4uu+8mumAieaLqSovXHJcblx0Ly8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGw6YmVmb3JlIHtcclxuXHQvLyAgIGNvbnRlbnQ6IFwi5piv5ZCmS2V55Lu2XCI7XHJcblx0Ly8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0Ly8gICBsZWZ0OiA3cHg7XHJcblx0Ly8gfVxyXG5cdC5kaXZpZGVyMSB7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHQvL3dpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0LmZvcm1pdGVtIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0fVxyXG48L3N0eWxlPlxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTU2NDdmZDgmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZTU2NDdmZDgmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNTY0N2ZkOFwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9e7c\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},aa2e:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YmEyMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJhYTJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///aa2e\n")},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-62062bae"],{"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},"271b":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT81MmVhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI3MWIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///271b\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},"37a2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("271b");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT84NTQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIzN2EyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU1NjQ3ZmQ4Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///37a2\n')},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"73f2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("aa2e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YWI0ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiNzNmMi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MDJmZmQ2ZmEmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///73f2\n')},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},"9e7c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=template&id=e5647fd8&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"总成编码","prop":"erpAssemblyCode"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成编码","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "erpAssemblyCode", $$v)},expression:"listQuery.erpAssemblyCode"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"总成名称","prop":"erpAssemblyName"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入总成名称","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.listQuery, "erpAssemblyName", $$v)},expression:"listQuery.erpAssemblyName"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"长描述","prop":"groupCode"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入长描述","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.groupCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "groupCode", $$v)},expression:"listQuery.groupCode"}})],1),_c(\'el-form-item\',{staticClass:"forimitem",attrs:{"label":"车型:","prop":"vehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"创建时间"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\', \'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.createTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "createTimeValue", $$v)},expression:"listQuery.createTimeValue"}})],1),_c(\'el-form-item\',{staticClass:"formitem"},[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")])],1),_c(\'el-form-item\',{staticStyle:{"margin-bottom":"0px"}},[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","disabled":""},on:{"click":_vm.handleCreate}},[_vm._v("新增 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-edit","disabled":""},on:{"click":_vm.handleUpdate}},[_vm._v("修改 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-delete","disabled":""},on:{"click":_vm.handleDelete}},[_vm._v("删除 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","disabled":""},on:{"click":_vm.handleImportSAP}},[_vm._v("导入(SAP对接) ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"44px"}}),_c(\'el-table-column\',{attrs:{"label":"ERP总成编码","prop":"erpAssemblyCode","sortable":"custom","align":"center","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.erpAssemblyCode))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"width":"700px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event},"close":_vm.closeDialog}},[_c(\'el-form\',{ref:"form",attrs:{"inline":true,"model":_vm.form,"rules":_vm.rules,"size":"small","label-width":"120px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"总成编码:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"erpAssemblyCode"}},[_c(\'el-input\',{staticStyle:{"width":"400px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.form, "erpAssemblyCode", $$v)},expression:"form.erpAssemblyCode"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"总成名称:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"erpAssemblyName"}},[_c(\'el-input\',{staticStyle:{"width":"400px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.form, "erpAssemblyName", $$v)},expression:"form.erpAssemblyName"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-form-item\',{attrs:{"label":"车型:","required":""}})],1),_c(\'el-col\',{attrs:{"span":20}},[_c(\'el-form-item\',{attrs:{"prop":"vehicleModel"}},[_c(\'el-select\',{staticStyle:{"width":"200px"},attrs:{"disabled":_vm.isEdit},model:{value:(_vm.form.vehicleModel),callback:function ($$v) {_vm.$set(_vm.form, "vehicleModel", $$v)},expression:"form.vehicleModel"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1)],1)],1),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"DetialTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.details,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.partCode),callback:function ($$v) {_vm.$set(scope.row, "partCode", $$v)},expression:"scope.row.partCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.description),callback:function ($$v) {_vm.$set(scope.row, "description", $$v)},expression:"scope.row.description"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量","width":"120px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input-number\',{staticStyle:{"width":"100px"},attrs:{"min":1,"size":"mini"},model:{value:(scope.row.partNum),callback:function ($$v) {_vm.$set(scope.row, "partNum", $$v)},expression:"scope.row.partNum"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件","align":"center","width":"80px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-checkbox\',{model:{value:(scope.row.isKey),callback:function ($$v) {_vm.$set(scope.row, "isKey", $$v)},expression:"scope.row.isKey"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddDetails}})],1)],2)],1)],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogFormVisible = false}}},[_vm._v("取消")]),_c(\'el-button\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.formLoading),expression:"formLoading"}],attrs:{"type":"primary"},on:{"click":function($event){return _vm.save()}}},[_vm._v("确认")])],1)],1)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.maxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "maxResultCount", $event)},"pagination":_vm.getList}}),_c(\'importExcel\',{ref:"importexcel",attrs:{"show":_vm.showExcelImport,"crmType":_vm.crmType},on:{"close":_vm.importExcelData}})],1),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=template&id=e5647fd8&scoped=true&\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportTxt/index.vue + 4 modules\nvar ImportTxt = __webpack_require__("00a5");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=template&id=02ffd6fa&scoped=true&\nvar detailvue_type_template_id_02ffd6fa_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'flexbox\',{staticClass:"content-header"}),_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [(scope.row.isKey == true)?_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#00b46d"}},[_vm._v("是")])]):_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#d75c89"}},[_vm._v("否")])])]}}])})],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_02ffd6fa_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=template&id=02ffd6fa&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n //OrgID:"",\n SkipCount: 0,\n MaxResultCount: 15,\n assemblyProductID: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList(this.searchContent);\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "客户零件代码",\n prop: "partCode ",\n width: 120\n });\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 160\n });\n tempsTabs.push({\n label: "是否Key件",\n prop: "isKey",\n width: 95\n });\n tempsTabs.push({\n label: "描述",\n prop: "description",\n width: 280\n });\n return tempsTabs;\n }\n },\n methods: {\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "isKey") {\n return {\n 0: "未生效",\n 1: "已生效"\n }[row[column.property]];\n }\n\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList(partCode) {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + this.customerInfo.parentId).then(function (response) {\n console.log(partCode);\n\n if (partCode !== "" && partCode !== undefined) {\n //console.log(partCode)\n _this2.list = response.item.details.filter(function (u) {\n return u.partCode === partCode;\n });\n } else {\n _this2.list = response.item.details;\n } //alert(JSON.stringify(response.Items))\n //this.totalCount = response.totalCount;\n\n\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n } //console.log(this.searchContent)\n\n\n this.getList(this.searchContent);\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var assemblyCfg_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue?vue&type=style&index=0&id=02ffd6fa&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_02ffd6fa_lang_scss_scoped_true_ = __webpack_require__("73f2");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n assemblyCfg_detailvue_type_script_lang_js_,\n detailvue_type_template_id_02ffd6fa_scoped_true_render,\n detailvue_type_template_id_02ffd6fa_scoped_true_staticRenderFns,\n false,\n null,\n "02ffd6fa",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=script&lang=js&\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var assemblyCfgvue_type_script_lang_js_ = ({\n name: "AssemblyCfgERP",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportTxt["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return {\n crmType: "AssemblyCfgERP",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n createTimeValue: [],\n beginCreateTime: undefined,\n endCreateTime: undefined,\n skipCount: 0,\n maxResultCount: 15,\n erpAssemblyName: undefined,\n erpAssemblyCode: undefined,\n vehicleModel: undefined\n },\n vehicleModelQuery: {\n dicTypeName: "格拉默车型"\n },\n form: {\n details: []\n },\n page: 1,\n // 显示搜索条件\n showSearch: true,\n bomUnit: bomUnit,\n multipleSelection: [],\n dialogFormVisible: false,\n formTitle: "",\n isEdit: false,\n formLoading: false,\n tableHeight: document.documentElement.clientHeight - 280,\n detailTableHeight: 250,\n details: [],\n //修改子表数据源\n vehicleModelList: [] //车型list\n\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n //this.$refs.form.rendered=true;\n //console.log(boxH);\n //console.log(this.tableHeight);\n });\n },\n created: function created() {\n this.getvehicleModel();\n this.getList();\n },\n computed: {\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 180\n });\n tempsTabs.push({\n label: "长描述",\n prop: "groupCode",\n width: 240\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModel",\n width: 120\n });\n tempsTabs.push({\n label: "创建时间",\n prop: "creationTime",\n width: 100\n });\n return tempsTabs;\n }\n },\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n save: function save() {\n var _this2 = this;\n\n //console.log(this.$refs.form);\n this.$refs.form.validate(function (valid) {\n if (valid) {\n console.log("保存参数:" + JSON.stringify(_this2.form));\n _this2.formLoading = true;\n\n if (_this2.isEdit) {\n //修改\n _this2.$axios.puts("/api/newjit/assembly-cfg-erp/" + _this2.form.id, _this2.form).then(function (response) {\n _this2.formLoading = false;\n\n _this2.$notify({\n title: "成功",\n message: "更新成功",\n type: "success",\n duration: 2000\n });\n\n _this2.dialogFormVisible = false;\n\n _this2.getList();\n }).catch(function () {\n _this2.formLoading = false;\n });\n } else {\n //insert添加\n console.log(JSON.stringify(_this2.form));\n\n _this2.$axios.posts("/api/newjit/assembly-cfg-erp", _this2.form).then(function (response) {\n _this2.formLoading = false;\n\n _this2.$notify({\n title: "成功",\n message: "新增成功",\n type: "success",\n duration: 2000\n });\n\n _this2.dialogFormVisible = false;\n\n _this2.getList();\n }).catch(function () {\n _this2.formLoading = false;\n });\n }\n }\n });\n },\n\n /** 新增 */\n handleCreate: function handleCreate() {\n var _this3 = this;\n\n if (this.$refs["form"] !== undefined) {\n this.$nextTick(function () {\n //this.$refs["form"] = [];\n _this3.$refs["form"].resetFields();\n });\n }\n\n this.formTitle = "新增";\n this.isEdit = false;\n this.form = {};\n this.details = []; //this.getvehicleModel();\n\n this.dialogFormVisible = true;\n },\n\n /** 修改 */\n handleUpdate: function handleUpdate(row) {\n this.formTitle = "修改";\n this.isEdit = true;\n this.details = []; //this.getvehicleModel();\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } else {\n this.fetchData(this.multipleSelection[0].id);\n this.dialogFormVisible = true;\n }\n },\n\n /** 删除 */\n handleDelete: function handleDelete(row) {\n var _this4 = this;\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } // this.$alert("暂时不支持批量删除", "提示", {\n // confirmButtonText: "确定",\n // callback: (action) => {\n // //\n // },\n // });\n\n\n this.$confirm("是否删除总成" + this.multipleSelection[0].erpAssemblyCode + "?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this4.$axios.deletes("/api/newjit/assembly-cfg-erp/" + _this4.multipleSelection[0].id).then(function (response) {\n var index = _this4.list.indexOf(_this4.multipleSelection[0]);\n\n _this4.$notify({\n title: "成功",\n message: "删除成功",\n type: "success",\n duration: 2000\n });\n\n _this4.getList();\n });\n }).catch(function () {\n _this4.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n },\n fetchData: function fetchData(id) {\n var _this5 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + id).then(function (response) {\n _this5.form = response.item; //this.details = response.item.details;\n //console.log(this.details);\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this6 = this;\n\n this.listLoading = true;\n console.log(JSON.stringify(this.listQuery));\n this.$axios.posts("/api/newjit/assembly-cfg-erp/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this6.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this6.listLoading = false;\n });\n });\n this.listLoading = false;\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.$refs[refName].resetFields();\n this.getvehicleModel();\n this.handleQuery();\n this.listQuery.createTimeValue = [];\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.skipCount = 1;\n this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.listLoading = false;\n this.showExcelImport = false;\n this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /*添加明细空行*/\n handleAddDetails: function handleAddDetails() {\n this.$forceUpdate();\n\n if (this.form.details === undefined) {\n this.form.details = []; //console.log(679);\n }\n\n var obj = {};\n obj.partCode = "";\n obj.description = "";\n obj.partNum = "";\n obj.isKey = false;\n obj.description = ""; //console.log(this.form.details);\n\n this.form.details.push(obj); //console.log(688);\n },\n handleDeleteDetails: function handleDeleteDetails(index) {\n this.form.details.splice(index, 1); //console.log(693);\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList() {\n var _this7 = this;\n\n this.listLoading = true;\n console.log("创建时间:" + JSON.stringify(this.listQuery));\n this.listQuery.skipCount = (this.page - 1) * 10;\n\n if (this.listQuery.createTimeValue !== undefined) {\n this.listQuery.beginCreateTime = this.listQuery.createTimeValue[0];\n this.listQuery.endCreateTime = this.listQuery.createTimeValue[1];\n }\n\n this.$axios.gets("/api/newjit/assembly-cfg-erp/list", this.listQuery).then(function (response) {\n _this7.list = response.items;\n _this7.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this7.listLoading = false;\n }, 500);\n }).catch(function () {\n _this7.listLoading = false;\n });\n },\n getDetialList: function getDetialList(partCode) {\n var _this8 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/assembly-cfg-erp/" + this.customerInfo.parentId).then(function (response) {\n console.log(partCode);\n\n if (partCode !== "" && partCode !== undefined) {\n //console.log(partCode)\n _this8.list = response.item.details.filter(function (u) {\n return u.partCode === partCode;\n });\n } else {\n _this8.list = response.item.details;\n } //alert(JSON.stringify(response.Items))\n //this.totalCount = response.totalCount;\n\n\n setTimeout(function () {\n //大数据量加载时\n _this8.listLoading = false;\n }, 500);\n }).catch(function () {\n _this8.listLoading = false;\n });\n },\n valueselectChange: function valueselectChange() {},\n handleImportSAP: function handleImportSAP() {\n //导入\n this.showExcelImport = true;\n this.$refs.importexcel.handleImportExcelClick();\n },\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n getvehicleModel: function getvehicleModel() {\n var _this9 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this9.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n closeDialog: function closeDialog() {//this.multipleSelection = [];//清空数据\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_assemblyCfgvue_type_script_lang_js_ = (assemblyCfgvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue?vue&type=style&index=0&id=e5647fd8&lang=scss&scoped=true&\nvar assemblyCfgvue_type_style_index_0_id_e5647fd8_lang_scss_scoped_true_ = __webpack_require__("37a2");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/assemblyCfg/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar assemblyCfg_component = Object(componentNormalizer["a" /* default */])(\n basedate_assemblyCfgvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "e5647fd8",\n null\n \n)\n\n/* harmony default export */ var assemblyCfg = __webpack_exports__["default"] = (assemblyCfg_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT8yODExIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvYXNzZW1ibHlDZmcvZGV0YWlsLnZ1ZT9jMWE2Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/MWVjZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YzU4YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/NzllOSIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9hc3NlbWJseUNmZy9pbmRleC52dWU/YzA5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2luZGV4LnZ1ZT9jZjY2Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvYXNzZW1ibHlDZmcvaW5kZXgudnVlPzlmY2UiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsK0JBQStCLHlDQUF5QyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSxzREFBc0QsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSwrREFBK0QsZ0RBQWdELHlDQUF5Qyx5QkFBeUIsK0JBQStCLHlDQUF5QyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSxzREFBc0QsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0Ms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LE1BR0E7QUFBQSxVQUZBLFFBRUEsUUFGQSxRQUVBO0FBQUEsVUFEQSxXQUNBLFFBREEsV0FDQTs7QUFDQTtBQUNBO0FBQ0E7QUFEQTtBQUdBLE9BSkEsTUFJQTtBQUNBO0FBQ0E7QUFEQTtBQUdBO0FBQ0EsS0FyV0E7O0FBc1dBO0FBQ0Esa0JBdldBLGlDQTRXQTtBQUFBLFVBSkEsR0FJQSxTQUpBLEdBSUE7QUFBQSxVQUhBLE1BR0EsU0FIQSxNQUdBO0FBQUEsVUFGQSxRQUVBLFNBRkEsUUFFQTtBQUFBLFVBREEsV0FDQSxTQURBLFdBQ0E7O0FBQ0E7QUFDQTtBQUNBLDRCQURBO0FBRUE7QUFGQTtBQUlBLE9BTEEsTUFLQTtBQUNBO0FBQ0EsMkJBREE7QUFFQTtBQUZBO0FBSUE7QUFDQSxLQXhYQTtBQXlYQSxrQkF6WEEsMEJBeVhBLEdBelhBLEVBeVhBLE1BelhBLEVBeVhBLEtBelhBLEVBeVhBO0FBQ0E7QUFDQTtBQUNBLEtBNVhBO0FBNlhBLG1CQTdYQSw2QkE2WEE7QUFBQTs7QUFDQSxrQkFDQSxJQURBLENBQ0Esc0JBREEsRUFDQSxzQkFEQSxFQUVBLElBRkEsQ0FFQTtBQUNBO0FBQ0EsZ0RBRkEsQ0FHQTtBQUNBLE9BTkEsRUFPQSxLQVBBLENBT0EsY0FQQTtBQVFBLEtBdFlBO0FBdVlBLGVBdllBLHlCQXVZQSxDQUNBO0FBQ0E7QUF6WUE7QUF4SUEsRzs7QUNsTzRXLENBQWdCLG9IQUFHLEVBQUMsQzs7Ozs7QUNBaFM7QUFDdkM7QUFDTDtBQUNzQzs7O0FBRzFGO0FBQ21HO0FBQ25HLElBQUkscUJBQVMsR0FBRyw4Q0FBVTtBQUMxQixFQUFFLDRDQUFNO0FBQ1IsRUFBRSxNQUFNO0FBQ1IsRUFBRSxlQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVlLHNHQUFTLFEiLCJmaWxlIjoiOWU3Yy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2Rpdicse3JlZjpcImJveFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9LFtfYygnZWwtZm9ybScse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnNob3dTZWFyY2gpLGV4cHJlc3Npb246XCJzaG93U2VhcmNoXCJ9XSxyZWY6XCJxdWVyeUZvcm1cIixhdHRyczp7XCJtb2RlbFwiOl92bS5saXN0UXVlcnksXCJpbmxpbmVcIjp0cnVlfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcmltaXRlbVwiLGF0dHJzOntcImxhYmVsXCI6XCLmgLvmiJDnvJbnoIFcIixcInByb3BcIjpcImVycEFzc2VtYmx5Q29kZVwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl5oC75oiQ57yW56CBXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5lcnBBc3NlbWJseUNvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5Q29kZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7c3RhdGljQ2xhc3M6XCJmb3JpbWl0ZW1cIixhdHRyczp7XCJsYWJlbFwiOlwi5oC75oiQ5ZCN56ewXCIsXCJwcm9wXCI6XCJlcnBBc3NlbWJseU5hbWVcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeaAu+aIkOWQjeensFwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJlcnBBc3NlbWJseU5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5lcnBBc3NlbWJseU5hbWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse3N0YXRpY0NsYXNzOlwiZm9yaW1pdGVtXCIsYXR0cnM6e1wibGFiZWxcIjpcIumVv+aPj+i/sFwiLFwicHJvcFwiOlwiZ3JvdXBDb2RlXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaXplb/mj4/ov7BcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5Lmdyb3VwQ29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiZ3JvdXBDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuZ3JvdXBDb2RlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcmltaXRlbVwiLGF0dHJzOntcImxhYmVsXCI6XCLovablnovvvJpcIixcInByb3BcIjpcInZlaGljbGVNb2RlbENvZGVcIn19LFtfYygnZWwtc2VsZWN0Jyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXJpZ2h0XCI6XCIxNXB4XCJ9LGF0dHJzOntcImNsZWFyYWJsZVwiOlwiXCIsXCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJzaXplXCI6XCJtZWRpdW1cIn0sb246e1wiY2hhbmdlXCI6X3ZtLnZhbHVlc2VsZWN0Q2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkudmVoaWNsZU1vZGVsQ29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwidmVoaWNsZU1vZGVsQ29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5Yib5bu65pe26Ze0XCJ9fSxbX2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM4MHB4XCJ9LGF0dHJzOntcInNpemVcIjpcInNtYWxsXCIsXCJ2YWx1ZS1mb3JtYXRcIjpcInl5eXktTU0tZGQgSEg6bW06c3NcIixcInR5cGVcIjpcImRhdGV0aW1lcmFuZ2VcIixcImRlZmF1bHQtdGltZVwiOlsnMDA6MDA6MDAnLCAnMjM6NTk6NTknXSxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiY3JlYXRlVGltZVZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNDbGFzczpcImZvcm1pdGVtXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCkgXCIpXSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIwcHhcIn19LFtfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItaXRlbVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tcGx1c1wiLFwiZGlzYWJsZWRcIjpcIlwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDcmVhdGV9fSxbX3ZtLl92KFwi5paw5aKeIFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1lZGl0XCIsXCJkaXNhYmxlZFwiOlwiXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZVVwZGF0ZX19LFtfdm0uX3YoXCLkv67mlLkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLWRlbGV0ZVwiLFwiZGlzYWJsZWRcIjpcIlwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVEZWxldGV9fSxbX3ZtLl92KFwi5Yig6ZmkIFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1wbHVzXCIsXCJkaXNhYmxlZFwiOlwiXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUltcG9ydFNBUH19LFtfdm0uX3YoXCLlr7zlhaXvvIhTQVDlr7nmjqXvvIkgXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwic2VsZWN0aW9uXCIsXCJ3aWR0aFwiOlwiNDRweFwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJsYWJlbFwiOlwiRVJQ5oC75oiQ57yW56CBXCIsXCJwcm9wXCI6XCJlcnBBc3NlbWJseUNvZGVcIixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxODBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cuZXJwQXNzZW1ibHlDb2RlKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMiksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nRm9ybVZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpfdm0uZm9ybVRpdGxlLFwid2lkdGhcIjpcIjcwMHB4XCJ9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nRm9ybVZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmNsb3NlRGlhbG9nfX0sW19jKCdlbC1mb3JtJyx7cmVmOlwiZm9ybVwiLGF0dHJzOntcImlubGluZVwiOnRydWUsXCJtb2RlbFwiOl92bS5mb3JtLFwicnVsZXNcIjpfdm0ucnVsZXMsXCJzaXplXCI6XCJzbWFsbFwiLFwibGFiZWwtd2lkdGhcIjpcIjEyMHB4XCJ9fSxbX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaAu+aIkOe8luegge+8mlwiLFwicmVxdWlyZWRcIjpcIlwifX0pXSwxKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjIwfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseUNvZGVcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiNDAwcHhcIn0sYXR0cnM6e1wiZGlzYWJsZWRcIjpfdm0uaXNFZGl0fSxtb2RlbDp7dmFsdWU6KF92bS5mb3JtLmVycEFzc2VtYmx5Q29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5mb3JtLCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybS5lcnBBc3NlbWJseUNvZGVcIn19KV0sMSldLDEpXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5oC75oiQ5ZCN56ew77yaXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MjB9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcInByb3BcIjpcImVycEFzc2VtYmx5TmFtZVwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI0MDBweFwifSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5pc0VkaXR9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0uZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwiZXJwQXNzZW1ibHlOYW1lXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLmVycEFzc2VtYmx5TmFtZVwifX0pXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLovablnovvvJpcIixcInJlcXVpcmVkXCI6XCJcIn19KV0sMSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoyMH19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wicHJvcFwiOlwidmVoaWNsZU1vZGVsXCJ9fSxbX2MoJ2VsLXNlbGVjdCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyMDBweFwifSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5pc0VkaXR9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0udmVoaWNsZU1vZGVsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwidmVoaWNsZU1vZGVsXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZlaGljbGVNb2RlbFwifX0sX3ZtLl9sKChfdm0udmVoaWNsZU1vZGVsTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0uZGljSXRlbU5hbWUsXCJ2YWx1ZVwiOml0ZW0uZGljSXRlbUNvZGV9fSl9KSwxKV0sMSldLDEpXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLXRhYmxlJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJsb2FkaW5nXCIscmF3TmFtZTpcInYtbG9hZGluZ1wiLHZhbHVlOihfdm0ubGlzdExvYWRpbmcpLGV4cHJlc3Npb246XCJsaXN0TG9hZGluZ1wifV0scmVmOlwiRGV0aWFsVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5mb3JtLmRldGFpbHMsXCJoZWlnaHRcIjpfdm0uZGV0YWlsVGFibGVIZWlnaHQsXCJjZWxsLXN0eWxlXCI6X3ZtLmNlbGxTdHlsZSxcImhlYWRlci1jZWxsLXN0eWxlXCI6X3ZtLmhlYWRlclJvd1N0eWxlLFwic2l6ZVwiOlwic21hbGxcIixcInN0cmlwZVwiOlwiXCIsXCJib3JkZXJcIjpcIlwiLFwiaGlnaGxpZ2h0LWN1cnJlbnQtcm93XCI6XCJcIn0sb246e1wicm93LWNsaWNrXCI6X3ZtLmhhbmRsZVJvd0NsaWNrfX0sW19jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0Q29kZVwiLFwibGFiZWxcIjpcIuWuouaIt+mbtuS7tuS7o+eggVwiLFwid2lkdGhcIjpcIjE1MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTM1cHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5wYXJ0Q29kZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJwYXJ0Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LnBhcnRDb2RlXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJkZXNjcmlwdGlvblwiLFwibGFiZWxcIjpcIuWuouaIt+mbtuS7tuWQjeensFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5kZXNjcmlwdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJkZXNjcmlwdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmRlc2NyaXB0aW9uXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0TnVtXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25pWw6YePXCIsXCJ3aWR0aFwiOlwiMTIwcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dC1udW1iZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibWluXCI6MSxcInNpemVcIjpcIm1pbmlcIn0sbW9kZWw6e3ZhbHVlOihzY29wZS5yb3cucGFydE51bSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJwYXJ0TnVtXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cucGFydE51bVwifX0pXX19XSl9KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCI4MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5pc0tleSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KHNjb3BlLnJvdywgXCJpc0tleVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmlzS2V5XCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJkZXNjcmlwdGlvblwiLFwid2lkdGhcIjpcIjM1cHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZURldGFpbHMoc2NvcGUuJGluZGV4LCBzY29wZS5yb3cpfX19KV19fV0pfSxbX2MoJ3RlbXBsYXRlJyx7c2xvdDpcImhlYWRlclwifSxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tcGx1c1wiLFwidHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGREZXRhaWxzfX0pXSwxKV0sMildLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGlhbG9nLWZvb3RlclwiLGF0dHJzOntcInNsb3RcIjpcImZvb3RlclwifSxzbG90OlwiZm9vdGVyXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2V9fX0sW192bS5fdihcIuWPlua2iFwiKV0pLF9jKCdlbC1idXR0b24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5mb3JtTG9hZGluZyksZXhwcmVzc2lvbjpcImZvcm1Mb2FkaW5nXCJ9XSxhdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnNhdmUoKX19fSxbX3ZtLl92KFwi56Gu6K6kXCIpXSldLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkubWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJtYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KSxfYygnaW1wb3J0RXhjZWwnLHtyZWY6XCJpbXBvcnRleGNlbFwiLGF0dHJzOntcInNob3dcIjpfdm0uc2hvd0V4Y2VsSW1wb3J0LFwiY3JtVHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJjbG9zZVwiOl92bS5pbXBvcnRFeGNlbERhdGF9fSldLDEpLF9jKCdlbC1kcmF3ZXInLHthdHRyczp7XCJ0aXRsZVwiOlwi5L+h5oGv6K+m57uG6aG1XCIsXCJzaXplXCI6XCI3NSVcIixcImRpcmVjdGlvblwiOlwicnRsXCIsXCJ2aXNpYmxlXCI6X3ZtLmRyYXdlcixcImJlZm9yZS1jbG9zZVwiOl92bS5oYW5kbGVEcmF3ZXJDbG9zZX0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kcmF3ZXI9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ0RldGFpbCcse3N0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi0zNXB4XCJ9LGF0dHJzOntcImN1c3RvbWVySW5mb3NcIjpfdm0uY3VzdG9tZXJJbmZvc319KV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9KSxfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImRlc2NyaXB0aW9uXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25ZCN56ewXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gWyhzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZSk/X2MoJ3NwYW4nLFtfYygnc3Bhbicse3N0YXRpY1N0eWxlOntcImNvbG9yXCI6XCIjMDBiNDZkXCJ9fSxbX3ZtLl92KFwi5pivXCIpXSldKTpfYygnc3BhbicsW19jKCdzcGFuJyx7c3RhdGljU3R5bGU6e1wiY29sb3JcIjpcIiNkNzVjODlcIn19LFtfdm0uX3YoXCLlkKZcIildKV0pXX19XSl9KV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0tRklT5Y+R6L+Q5pWw5o2u5a+55q+U6L6T5Ye66KGoLeaYjue7huaVsOaNri0tPlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgPGZsZXhib3ggY2xhc3M9XCJjb250ZW50LWhlYWRlclwiPlxyXG4gICAgICA8IS0tIDxlbC1idXR0b25cclxuICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgdHlwZT1cImluZm9cIlxyXG4gICAgICAgIGljb249XCJlbC1pY29uLWRvd25sb2FkXCJcclxuICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICA+5a+85Ye65YWo6YOoXHJcbiAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsPVwic2VhcmNoQ29udGVudFwiXHJcbiAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuaUr+aMgeaooeeziuaQnOe0oi4uLlwiXHJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjMwcHhcIlxyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiXHJcbiAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxyXG4gICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICA+5pCc57SiXHJcbiAgICAgIDwvZWwtYnV0dG9uPiAtLT5cclxuICAgIDwvZmxleGJveD5cclxuICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgIDxlbC10YWJsZVxyXG4gICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBzdHJpcGVcclxuICAgICAgYm9yZGVyXHJcbiAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnRDb2RlXCIgbGFiZWw9XCLlrqLmiLfpm7bku7bku6PnoIFcIj4gPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLlrqLmiLfpm7bku7blkI3np7BcIj4gPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cInBhcnROdW1cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuaVsOmHj1wiPiA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiaXNLZXlcIiBsYWJlbD1cIuaYr+WQpktleeS7tlwiPlxyXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgIDxzcGFuIHYtaWY9XCJzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDBiNDZkXCI+5pivPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gdi1lbHNlPlxyXG4gICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjZDc1Yzg5XCI+5ZCmPC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgPC9lbC10YWJsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuICAgICAgPCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcbiAgICAgIDxwYWdpbmF0aW9uXHJcbiAgICAgICAgdi1zaG93PVwidG90YWxDb3VudCA+IDBcIlxyXG4gICAgICAgIDp0b3RhbD1cInRvdGFsQ291bnRcIlxyXG4gICAgICAgIDpwYWdlLnN5bmM9XCJwYWdlXCJcclxuICAgICAgICA6bGltaXQuc3luYz1cImxpc3RRdWVyeS5NYXhSZXN1bHRDb3VudFwiXHJcbiAgICAgICAgQHBhZ2luYXRpb249XCJnZXRMaXN0XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7IC8vIHNlY29uZGFyeSBwYWNrYWdlIGJhc2VkIG9uIGVsLXBhZ2luYXRpb25cclxuaW1wb3J0IHBlcm1pc3Npb24gZnJvbSBcIkAvZGlyZWN0aXZlL3Blcm1pc3Npb24vaW5kZXguanNcIjtcclxuaW1wb3J0IENSTVRhYmxlSGVhZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DUk1UYWJsZUhlYWRcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWxcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcInNlbmRVbnNldHRsZWREaWZmUmVwb3J0XCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIHR5cGU6IEFycmF5LFxyXG4gICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcInN0b2NrRmlzRGlmZlJlcG9ydFwiLFxyXG4gICAgICBydWxlczoge1xyXG4gICAgICAgIC8v5YmN56uv5a6a5LmJ55qE6KeE5YiZ77yM5ZCO56uv5Lmf5pyJ6aqM6K+BXHJcbiAgICAgICAgZXJwTWF0ZXJpYWxDb2RlOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHNlYXJjaENvbnRlbnQ6IFwiXCIsIC8vIOi+k+WFpeWGheWuuVxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBwYXJlbnRJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZm9ybToge1xyXG4gICAgICAgIGRpY0RldGFpbElEOiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVySWQ6IFwiXCIsXHJcbiAgICAgICAgcHJvamVjdElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0OiBudWxsLFxyXG4gICAgICB0b3RhbENvdW50OiAwLFxyXG4gICAgICBsaXN0TG9hZGluZzogdHJ1ZSxcclxuICAgICAgZm9ybUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAvLyDpq5jnuqfmkJzntKJcclxuICAgICAgZmlsdGVyT2JqOiB7XHJcbiAgICAgICAgdHlwZTogT2JqZWN0LFxyXG4gICAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7fTtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICBsaXN0UXVlcnk6IHtcclxuICAgICAgICBGaWx0ZXJzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGxvZ2ljOiAwLFxyXG4gICAgICAgICAgICBjb2x1bW46IFwiRW5hYmxlZFwiLFxyXG4gICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgIHZhbHVlOiBcInRydWVcIixcclxuICAgICAgICAgIH0sIC8v6buY6K6k5p+l6K+i5Y+v55So55qEXHJcbiAgICAgICAgXSxcclxuICAgICAgICAvL09yZ0lEOlwiXCIsXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBhc3NlbWJseVByb2R1Y3RJRDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMCxcclxuICAgICAgaXNFZGl0OiBmYWxzZSxcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgc2VsZi50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIDMwO1xyXG4gICAgfTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLmdldExpc3QoKTtcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIGhhbmRsZXIobmV3VmFsKSB7XHJcbiAgICAgICAgaWYgKG5ld1ZhbCA9PSBcIlwiIHx8IG5ld1ZhbCA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAvL1RPRE9cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3VmFsLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgPSBlbGVtZW50LlBhcmVudElkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgIT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QodGhpcy5zZWFyY2hDb250ZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLyoqIOWIl+ihqOWtl+autSAqL1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICB2YXIgdGVtcHNUYWJzID0gW107XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25Luj56CBXCIsIHByb3A6IFwicGFydENvZGUgXCIsIHdpZHRoOiAxMjAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogMTYwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIuaYr+WQpktleeS7tlwiLCBwcm9wOiBcImlzS2V5XCIsIHdpZHRoOiA5NSB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goeyBsYWJlbDogXCLmj4/ov7BcIiwgcHJvcDogXCJkZXNjcmlwdGlvblwiLCB3aWR0aDogMjgwIH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8qKiDliLfmlrDliJfooaggKi9cclxuICAgIGhhbmRsZUhhbmRsZShkYXRhKSB7XHJcbiAgICAgIGlmIChkYXRhLnR5cGUgIT09IFwiZWRpdFwiKSB7XHJcbiAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5qC85byP5YyW5a2X5q61ICovXHJcbiAgICBmaWVsZEZvcm1hdHRlcihyb3csIGNvbHVtbikge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcImlzS2V5XCIpIHtcclxuICAgICAgICByZXR1cm4geyAwOiBcIuacqueUn+aViFwiLCAxOiBcIuW3sueUn+aViFwiIH1bcm93W2NvbHVtbi5wcm9wZXJ0eV1dO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KHBhcnRDb2RlKSB7XHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuivpuihqOadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHBhcnRDb2RlKVxyXG4gICAgICAgICAgaWYocGFydENvZGUgIT09IFwiXCIgJiYgcGFydENvZGUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhwYXJ0Q29kZSlcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5kZXRhaWxzLmZpbHRlcih1ID0+IHUucGFydENvZGUgPT09IHBhcnRDb2RlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2UuaXRlbS5kZXRhaWxzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy9hbGVydChKU09OLnN0cmluZ2lmeShyZXNwb25zZS5JdGVtcykpXHJcbiAgICAgICAgICAvL3RoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5zZWFyY2hDb250ZW50KVxyXG4gICAgICB0aGlzLmdldExpc3QodGhpcy5zZWFyY2hDb250ZW50KTtcclxuICAgIH0sXHJcbiAgICByZXNldFF1ZXJ5KCkge30sXHJcblxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLZzdHlsZSAqL1xyXG4gICAgY2VsbFN0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZmlzUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZGlmZlF0eVwiIHx8XHJcbiAgICAgICAgY29sdW1uLnByb3BlcnR5ID09PSBcInN0b2NrUXR5XCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuICAgIGhlYWRlclJvd1N0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZmlzUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwiZGlmZlF0eVwiIHx8XHJcbiAgICAgICAgY29sdW1uLnByb3BlcnR5ID09PSBcInN0b2NrUXR5XCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTAyZmZkNmZhJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTAyZmZkNmZhJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMDJmZmQ2ZmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8IS0t5oC75oiQ5qih5Z2X5L+h5oGv566h55CG6aG1LS0+XHJcbjx0ZW1wbGF0ZT5cclxuXHQ8ZGl2IGNsYXNzPVwiY3ItYm9keS1jb250ZW50XCI+XHJcblx0XHQ8ZGl2IHJlZj1cImJveFwiPlxyXG5cdFx0XHQ8ZmxleGJveCBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCI+XHJcblx0XHRcdFx0PGVsLWZvcm0gOm1vZGVsPVwibGlzdFF1ZXJ5XCIgcmVmPVwicXVlcnlGb3JtXCIgdi1zaG93PVwic2hvd1NlYXJjaFwiIDppbmxpbmU9XCJ0cnVlXCI+XHJcblx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57yW56CBXCIgcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiIGNsYXNzPVwiZm9yaW1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1pbnB1dCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5Q29kZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ57yW56CBXCIgY2xlYXJhYmxlIHNpemU9XCJzbWFsbFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuXHRcdFx0XHRcdFx0IEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiIC8+XHJcblx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHJcblx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ5ZCN56ewXCIgcHJvcD1cImVycEFzc2VtYmx5TmFtZVwiIGNsYXNzPVwiZm9yaW1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1pbnB1dCB2LW1vZGVsPVwibGlzdFF1ZXJ5LmVycEFzc2VtYmx5TmFtZVwiIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ5ZCN56ewXCIgY2xlYXJhYmxlIHNpemU9XCJzbWFsbFwiIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuXHRcdFx0XHRcdFx0IEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiIC8+XHJcblx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIumVv+aPj+i/sFwiIHByb3A9XCJncm91cENvZGVcIiBjbGFzcz1cImZvcmltaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgdi1tb2RlbD1cImxpc3RRdWVyeS5ncm91cENvZGVcIiBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpemVv+aPj+i/sFwiIGNsZWFyYWJsZSBzaXplPVwic21hbGxcIiBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcblx0XHRcdFx0XHRcdCBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIiAvPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei++8mlwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxDb2RlXCIgY2xhc3M9XCJmb3JpbWl0ZW1cIj5cclxuXHRcdFx0XHRcdFx0PGVsLXNlbGVjdCB2LW1vZGVsPVwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIiBjbGVhcmFibGUgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIiBzaXplPVwibWVkaXVtXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDE1cHhcIlxyXG5cdFx0XHRcdFx0XHQgQGNoYW5nZT1cInZhbHVlc2VsZWN0Q2hhbmdlXCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLW9wdGlvbiB2LWZvcj1cIml0ZW0gaW4gdmVoaWNsZU1vZGVsTGlzdFwiIDprZXk9XCJpdGVtLmlkXCIgOmxhYmVsPVwiaXRlbS5kaWNJdGVtTmFtZVwiIDp2YWx1ZT1cIml0ZW0uZGljSXRlbUNvZGVcIiAvPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLXNlbGVjdD5cclxuXHRcdFx0XHRcdDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuXHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLliJvlu7rml7bpl7RcIj5cclxuXHRcdFx0XHRcdFx0PGVsLWRhdGUtcGlja2VyIHYtbW9kZWw9XCJsaXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlXCIgc2l6ZT1cInNtYWxsXCIgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIiB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuXHRcdFx0XHRcdFx0IHR5cGU9XCJkYXRldGltZXJhbmdlXCIgOmRlZmF1bHQtdGltZT1cIlsnMDA6MDA6MDAnLCAnMjM6NTk6NTknXVwiIHJhbmdlLXNlcGFyYXRvcj1cIi1cIiBzdGFydC1wbGFjZWhvbGRlcj1cIuW8gOWni+aXpeacn1wiXHJcblx0XHRcdFx0XHRcdCBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIj48L2VsLWRhdGUtcGlja2VyPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblxyXG5cdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBjbGFzcz1cImZvcm1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1zZWFyY2hcIiBzaXplPVwibWluaVwiIEBjbGljaz1cImhhbmRsZUZpbHRlclwiPuaQnOe0ojwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtYnV0dG9uIGljb249XCJlbC1pY29uLXJlZnJlc2hcIiBzaXplPVwibWluaVwiIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCI+6YeN572uPC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gdHlwZT1cIndhcm5pbmdcIiBwbGFpbiBpY29uPVwiZWwtaWNvbi1kb3dubG9hZFwiIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogMTVweFwiIEBjbGljaz1cImhhbmRsZURvd25sb2FkKClcIj7lr7zlh7ooRXhjZWwpXHJcblx0XHRcdFx0XHRcdDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0XHQ8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjFcIiA+PC9lbC1kaXZpZGVyPiAtLT5cclxuXHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IFwiPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtYnV0dG9uIGNsYXNzPVwiZmlsdGVyLWl0ZW1cIiBzaXplPVwibWluaVwiIHR5cGU9XCJwcmltYXJ5XCIgaWNvbj1cImVsLWljb24tcGx1c1wiIEBjbGljaz1cImhhbmRsZUNyZWF0ZVwiIGRpc2FibGVkPuaWsOWinlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGVsLWJ1dHRvbiBjbGFzcz1cImZpbHRlci1pdGVtXCIgc2l6ZT1cIm1pbmlcIiB0eXBlPVwicHJpbWFyeVwiIGljb249XCJlbC1pY29uLWVkaXRcIiBAY2xpY2s9XCJoYW5kbGVVcGRhdGVcIiBkaXNhYmxlZD7kv67mlLlcclxuXHRcdFx0XHRcdFx0PC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gY2xhc3M9XCJmaWx0ZXItaXRlbVwiIHNpemU9XCJtaW5pXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1kZWxldGVcIiBAY2xpY2s9XCJoYW5kbGVEZWxldGVcIiBkaXNhYmxlZD7liKDpmaRcclxuXHRcdFx0XHRcdFx0PC9lbC1idXR0b24+XHJcblx0XHRcdFx0XHRcdDxlbC1idXR0b24gY2xhc3M9XCJmaWx0ZXItaXRlbVwiIHNpemU9XCJtaW5pXCIgdHlwZT1cInByaW1hcnlcIiBpY29uPVwiZWwtaWNvbi1wbHVzXCIgQGNsaWNrPVwiaGFuZGxlSW1wb3J0U0FQXCIgZGlzYWJsZWQ+5a+85YWl77yIU0FQ5a+55o6l77yJXHJcblx0XHRcdFx0XHRcdDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0PC9lbC1mb3JtPlxyXG5cdFx0XHQ8L2ZsZXhib3g+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdDxkaXYgY2xhc3M9XCJsLXRhYmxlXCI+XHJcblx0XHRcdDwhLS3ooajmoLzmuLLmn5MtLT5cclxuXHRcdFx0PGVsLXRhYmxlIHJlZj1cIm11bHRpcGxlVGFibGVcIiB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCIgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG5cdFx0XHQgY2xhc3M9XCJjci10YWJsZVwiIDpkYXRhPVwibGlzdFwiIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCIgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG5cdFx0XHQgc2l6ZT1cInNtYWxsXCIgc3RyaXBlIGJvcmRlciBoaWdobGlnaHQtY3VycmVudC1yb3cgc3R5bGU9XCJ3aWR0aDogMTAwJVwiIEBzb3J0LWNoYW5nZT1cInNvcnRDaGFuZ2VcIiBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcblx0XHRcdCBAcm93LWNsaWNrPVwiaGFuZGxlUm93Q2xpY2tcIj5cclxuXHRcdFx0XHQ8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj5cclxuXHJcblx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBsYWJlbD1cIkVSUOaAu+aIkOe8lueggVwiIHByb3A9XCJlcnBBc3NlbWJseUNvZGVcIiBzb3J0YWJsZT1cImN1c3RvbVwiIGFsaWduPVwiY2VudGVyXCIgd2lkdGg9XCIxODBweFwiPlxyXG5cdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImxpbmstdHlwZVwiIEBjbGljaz1cImhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KVwiPnt7XHJcbiAgICAgICAgICAgICAgc2NvcGUucm93LmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gZ2V0RGVmYXVsdEZpZWxkXCIgOmtleT1cImluZGV4XCIgOnByb3A9XCJpdGVtLnByb3BcIiA6bGFiZWw9XCJpdGVtLmxhYmVsXCJcclxuXHRcdFx0XHQgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIiA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIiBzb3J0YWJsZT1cImN1c3RvbVwiIHNob3ctb3ZlcmZsb3ctdG9vbHRpcCA6Z3V0dGVyPVwiMFwiPlxyXG5cdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Q9XCJoZWFkZXJcIiBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0e3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcblx0XHRcdFx0XHQ8L3RlbXBsYXRlPlxyXG5cdFx0XHRcdDwvZWwtdGFibGUtY29sdW1uPlxyXG5cdFx0XHQ8L2VsLXRhYmxlPlxyXG5cclxuXHRcdFx0PCEtLeihqOWNlea4suafky0tPlxyXG5cdFx0XHQ8ZWwtZGlhbG9nIDp2aXNpYmxlLnN5bmM9XCJkaWFsb2dGb3JtVmlzaWJsZVwiIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCIgOnRpdGxlPVwiZm9ybVRpdGxlXCIgd2lkdGg9XCI3MDBweFwiIEBjbG9zZT1cImNsb3NlRGlhbG9nXCI+XHJcblx0XHRcdFx0PGVsLWZvcm0gcmVmPVwiZm9ybVwiIDppbmxpbmU9XCJ0cnVlXCIgOm1vZGVsPVwiZm9ybVwiIDpydWxlcz1cInJ1bGVzXCIgc2l6ZT1cInNtYWxsXCIgbGFiZWwtd2lkdGg9XCIxMjBweFwiPlxyXG5cdFx0XHRcdFx0PGVsLXJvdz5cclxuXHRcdFx0XHRcdFx0PGVsLWNvbCA6c3Bhbj1cIjRcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57yW56CB77yaXCIgcmVxdWlyZWQgLz5cclxuXHRcdFx0XHRcdFx0PC9lbC1jb2w+XHJcblx0XHRcdFx0XHRcdDxlbC1jb2wgOnNwYW49XCIyMFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGVsLWlucHV0IHN0eWxlPVwid2lkdGg6IDQwMHB4XCIgdi1tb2RlbD1cImZvcm0uZXJwQXNzZW1ibHlDb2RlXCIgOmRpc2FibGVkPVwiaXNFZGl0XCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L2VsLWZvcm0taXRlbT5cclxuXHRcdFx0XHRcdFx0PC9lbC1jb2w+XHJcblx0XHRcdFx0XHQ8L2VsLXJvdz5cclxuXHJcblx0XHRcdFx0XHQ8ZWwtcm93PlxyXG5cdFx0XHRcdFx0XHQ8ZWwtY29sIDpzcGFuPVwiNFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmgLvmiJDlkI3np7DvvJpcIiByZXF1aXJlZCAvPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWNvbD5cclxuXHRcdFx0XHRcdFx0PGVsLWNvbCA6c3Bhbj1cIjIwXCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBwcm9wPVwiZXJwQXNzZW1ibHlOYW1lXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgc3R5bGU9XCJ3aWR0aDogNDAwcHhcIiB2LW1vZGVsPVwiZm9ybS5lcnBBc3NlbWJseU5hbWVcIiA6ZGlzYWJsZWQ9XCJpc0VkaXRcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdDwvZWwtZm9ybS1pdGVtPlxyXG5cdFx0XHRcdFx0XHQ8L2VsLWNvbD5cclxuXHRcdFx0XHRcdDwvZWwtcm93PlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gPGVsLXJvdz5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5oC75oiQ57G75Z6L77yaXCIgcmVxdWlyZWQgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIyMFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gcHJvcD1cImVycEFzc2VtYmx5VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDIwMHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uZXJwQXNzZW1ibHlUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgPC9lbC1yb3c+IC0tPlxyXG5cclxuXHRcdFx0XHRcdDxlbC1yb3c+XHJcblx0XHRcdFx0XHRcdDxlbC1jb2wgOnNwYW49XCI0XCI+XHJcblx0XHRcdFx0XHRcdFx0PGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei++8mlwiIHJlcXVpcmVkIC8+XHJcblx0XHRcdFx0XHRcdDwvZWwtY29sPlxyXG5cdFx0XHRcdFx0XHQ8ZWwtY29sIDpzcGFuPVwiMjBcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtZm9ybS1pdGVtIHByb3A9XCJ2ZWhpY2xlTW9kZWxcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxlbC1zZWxlY3Qgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIiB2LW1vZGVsPVwiZm9ybS52ZWhpY2xlTW9kZWxcIiA6ZGlzYWJsZWQ9XCJpc0VkaXRcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLW9wdGlvbiB2LWZvcj1cIml0ZW0gaW4gdmVoaWNsZU1vZGVsTGlzdFwiIDprZXk9XCJpdGVtLmlkXCIgOmxhYmVsPVwiaXRlbS5kaWNJdGVtTmFtZVwiIDp2YWx1ZT1cIml0ZW0uZGljSXRlbUNvZGVcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9lbC1zZWxlY3Q+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC1mb3JtLWl0ZW0+XHJcblx0XHRcdFx0XHRcdDwvZWwtY29sPlxyXG5cdFx0XHRcdFx0PC9lbC1yb3c+XHJcblx0XHRcdFx0XHQ8ZWwtcm93PlxyXG5cdFx0XHRcdFx0XHQ8ZWwtdGFibGUgcmVmPVwiRGV0aWFsVGFibGVcIiB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCIgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG5cdFx0XHRcdFx0XHQgY2xhc3M9XCJjci10YWJsZVwiIDpkYXRhPVwiZm9ybS5kZXRhaWxzXCIgOmhlaWdodD1cImRldGFpbFRhYmxlSGVpZ2h0XCIgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIiA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcblx0XHRcdFx0XHRcdCBzaXplPVwic21hbGxcIiBzdHJpcGUgYm9yZGVyIGhpZ2hsaWdodC1jdXJyZW50LXJvdyBzdHlsZT1cIndpZHRoOiAxMDAlXCIgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCI+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydENvZGVcIiBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiIHdpZHRoPVwiMTUwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cucGFydENvZGVcIiBzaXplPVwibWluaVwiIHN0eWxlPVwid2lkdGg6IDEzNXB4XCI+PC9lbC1pbnB1dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiZGVzY3JpcHRpb25cIiBsYWJlbD1cIuWuouaIt+mbtuS7tuWQjeensFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5kZXNjcmlwdGlvblwiIHNpemU9XCJtaW5pXCI+PC9lbC1pbnB1dD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydE51bVwiIGxhYmVsPVwi5a6i5oi36Zu25Lu25pWw6YePXCIgd2lkdGg9XCIxMjBweFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZWwtaW5wdXQtbnVtYmVyIHYtbW9kZWw9XCJzY29wZS5yb3cucGFydE51bVwiIDptaW49XCIxXCIgc2l6ZT1cIm1pbmlcIiBzdHlsZT1cIndpZHRoOiAxMDBweFwiPjwvZWwtaW5wdXQtbnVtYmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8L2VsLXRhYmxlLWNvbHVtbj5cclxuXHRcdFx0XHRcdFx0XHQ8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJpc0tleVwiIGxhYmVsPVwi5piv5ZCmS2V55Lu2XCIgYWxpZ249XCJjZW50ZXJcIiB3aWR0aD1cIjgwcHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwhLS0gbGFiZWwtY2xhc3MtbmFtZT1cIkRpc2FibGVkU2VsZWN0aW9uXCIg5Y676Zmk5YiX5aS05YWo6YCJLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGUgc2xvdC1zY29wZT1cInNjb3BlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxlbC1jaGVja2JveCB2LW1vZGVsPVwic2NvcGUucm93LmlzS2V5XCI+PC9lbC1jaGVja2JveD5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJkZXNjcmlwdGlvblwiIGxhYmVsPVwi5o+P6L+wXCI+XHJcbiAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgPGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cuZGlzZGVzY3JpcHRpb25LZXlcIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0PGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiZGVzY3JpcHRpb25cIiB3aWR0aD1cIjM1cHhcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxlbC1idXR0b24gQGNsaWNrPVwiaGFuZGxlQWRkRGV0YWlsc1wiIGljb249XCJlbC1pY29uLXBsdXNcIiB0eXBlPVwidGV4dFwiPjwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVEZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLW1pbnVzXCIgdHlwZT1cInRleHRcIj48L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PC9lbC10YWJsZS1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdDwvZWwtdGFibGU+XHJcblx0XHRcdFx0XHQ8L2VsLXJvdz5cclxuXHRcdFx0XHQ8L2VsLWZvcm0+XHJcblx0XHRcdFx0PCEtLeihqOagvOa4suafky0tPlxyXG5cdFx0XHRcdDxkaXYgc2xvdD1cImZvb3RlclwiIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxyXG5cdFx0XHRcdFx0PGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2VcIj7lj5bmtog8L2VsLWJ1dHRvbj5cclxuXHRcdFx0XHRcdDxlbC1idXR0b24gdi1sb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmUoKVwiPuehruiupDwvZWwtYnV0dG9uPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2VsLWRpYWxvZz5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1mb290ZXJcIj5cclxuXHRcdFx0PCEtLSDliIbpobXmjqfku7Ygc3R5bGU9XCJtYXJnaW4tdG9wOiAtMjVweDttYXJnaW4tYm90dG9tOi0yNXB4O2Zsb2F0OnJpZ2h0O1wiLS0+XHJcblx0XHRcdDxwYWdpbmF0aW9uIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCIgOnRvdGFsPVwidG90YWxDb3VudFwiIDpwYWdlLnN5bmM9XCJwYWdlXCIgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkubWF4UmVzdWx0Q291bnRcIlxyXG5cdFx0XHQgQHBhZ2luYXRpb249XCJnZXRMaXN0XCIgLz5cclxuXHRcdFx0PCEtLSDlr7zlhaVFeGNlbOe7hOS7tiAtLT5cclxuXHRcdFx0PGltcG9ydEV4Y2VsIHJlZj1cImltcG9ydGV4Y2VsXCIgOnNob3c9XCJzaG93RXhjZWxJbXBvcnRcIiA6Y3JtVHlwZT1cImNybVR5cGVcIiBAY2xvc2U9XCJpbXBvcnRFeGNlbERhdGFcIiAvPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8IS0tIOaKveWxieaOp+S7tiAtLT5cclxuXHRcdDxlbC1kcmF3ZXIgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIiBzaXplPVwiNzUlXCIgZGlyZWN0aW9uPVwicnRsXCIgOnZpc2libGUuc3luYz1cImRyYXdlclwiIDpiZWZvcmUtY2xvc2U9XCJoYW5kbGVEcmF3ZXJDbG9zZVwiPlxyXG5cdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdDxEZXRhaWwgdi1iaW5kOmN1c3RvbWVySW5mb3M9XCJjdXN0b21lckluZm9zXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtMzVweFwiPjwvRGV0YWlsPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZWwtZHJhd2VyPlxyXG5cdDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuXHRpbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjtcclxuXHRpbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5cdGltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcblx0aW1wb3J0IGltcG9ydEV4Y2VsIGZyb20gXCJAL2NvbXBvbmVudHMvSW1wb3J0VHh0XCI7XHJcblx0aW1wb3J0IExvY2tyIGZyb20gXCJsb2NrclwiO1xyXG5cdGltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5cdGltcG9ydCBEZXRhaWwgZnJvbSBcIi4vZGV0YWlsLnZ1ZVwiO1xyXG5cdGltcG9ydCB7XHJcblx0XHRkb3dubG9hZEZpbGVcclxuXHR9IGZyb20gXCJAL3V0aWxzL2NybWluZGV4LmpzXCI7XHJcblxyXG5cdC8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcblx0Y29uc3QgYm9tVW5pdCA9IFt7XHJcblx0XHRcdGtleTogMCxcclxuXHRcdFx0ZGlzcGxheV9uYW1lOiBcIlBDXCJcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdGtleTogMSxcclxuXHRcdFx0ZGlzcGxheV9uYW1lOiBcIlRPTlwiXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRrZXk6IDIsXHJcblx0XHRcdGRpc3BsYXlfbmFtZTogXCJPdGhlclwiXHJcblx0XHR9LFxyXG5cdF07XHJcblx0Y29uc3QgcHJvamVjdFR5cGVLZXlWYWx1ZSA9IGJvbVVuaXQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xyXG5cdFx0YWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuXHRcdHJldHVybiBhY2M7XHJcblx0fSwge30pO1xyXG5cclxuXHRleHBvcnQgZGVmYXVsdCB7XHJcblx0XHRuYW1lOiBcIkFzc2VtYmx5Q2ZnRVJQXCIsXHJcblx0XHRjb21wb25lbnRzOiB7XHJcblx0XHRcdFBhZ2luYXRpb24sXHJcblx0XHRcdENSTVRhYmxlSGVhZCxcclxuXHRcdFx0aW1wb3J0RXhjZWwsXHJcblx0XHRcdERldGFpbFxyXG5cdFx0fSxcclxuXHRcdGRpcmVjdGl2ZXM6IHtcclxuXHRcdFx0cGVybWlzc2lvblxyXG5cdFx0fSxcclxuXHRcdGZpbHRlcnM6IHtcclxuXHRcdFx0SXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcblx0XHRcdFx0Ly/nv7vor5HmmK/lkKbnrb7lrZdcclxuXHRcdFx0XHRjb25zdCBzdGF0dXNNYXAgPSB7XHJcblx0XHRcdFx0XHR0cnVlOiBcIuaYr1wiLFxyXG5cdFx0XHRcdFx0ZmFsc2U6IFwi5ZCmXCIsXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0ZGF0YSgpIHtcclxuXHRcdFx0Y29uc3QgdmFsaWRWZXJzaW9uID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4ge1xyXG5cdFx0XHRcdGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG5cdFx0XHRcdGlmICghbnVtYmVyUmVnLnRlc3QodmFsdWUpKSB7XHJcblx0XHRcdFx0XHRjYWxsYmFjayhuZXcgRXJyb3IoXCLlj6rog73kuLo25L2N5pWw5a2X77yBXCIpKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0Y2FsbGJhY2soKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0Y3JtVHlwZTogXCJBc3NlbWJseUNmZ0VSUFwiLFxyXG5cdFx0XHRcdHJ1bGVzOiB7XHJcblx0XHRcdFx0XHRlcnBBc3NlbWJseU5hbWU6IFt7XHJcblx0XHRcdFx0XHRcdHJlcXVpcmVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLFxyXG5cdFx0XHRcdFx0XHR0cmlnZ2VyOiBcImJsdXJcIlxyXG5cdFx0XHRcdFx0fSwgXSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdHZhbHVlU2VsZWN0OiBcIlwiLFxyXG5cdFx0XHRcdGN1c3RvbWVySW5mb3M6IFtdLFxyXG5cdFx0XHRcdGRpYWxvZ09wdGlvbnM6IFtdLFxyXG5cdFx0XHRcdHZlcnNpb25WYWx1ZTogXCJcIixcclxuXHRcdFx0XHRzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuXHRcdFx0XHRzaG93RXhjZWxJbXBvcnQ6IGZhbHNlLFxyXG5cdFx0XHRcdGRyYXdlcjogZmFsc2UsXHJcblx0XHRcdFx0bGlzdDogbnVsbCxcclxuXHRcdFx0XHR0b3RhbENvdW50OiAwLFxyXG5cdFx0XHRcdGxpc3RMb2FkaW5nOiB0cnVlLFxyXG5cdFx0XHRcdGN1c3RvbWVySW5mbzoge1xyXG5cdFx0XHRcdFx0Ym9tSWQ6IFwiXCIsXHJcblx0XHRcdFx0fSxcclxuXHRcdFx0XHQvLyDpq5jnuqfmkJzntKJcclxuXHRcdFx0XHRmaWx0ZXJPYmo6IHtcclxuXHRcdFx0XHRcdHR5cGU6IE9iamVjdCxcclxuXHRcdFx0XHRcdGRlZmF1bHQ6ICgpID0+IHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHt9O1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGxpc3RRdWVyeToge1xyXG5cdFx0XHRcdFx0Y3JlYXRlVGltZVZhbHVlOiBbXSxcclxuXHRcdFx0XHRcdGJlZ2luQ3JlYXRlVGltZTogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdFx0ZW5kQ3JlYXRlVGltZTogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdFx0c2tpcENvdW50OiAwLFxyXG5cdFx0XHRcdFx0bWF4UmVzdWx0Q291bnQ6IDE1LFxyXG5cdFx0XHRcdFx0ZXJwQXNzZW1ibHlOYW1lOiB1bmRlZmluZWQsXHJcblx0XHRcdFx0XHRlcnBBc3NlbWJseUNvZGU6IHVuZGVmaW5lZCxcclxuXHRcdFx0XHRcdHZlaGljbGVNb2RlbDogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdHZlaGljbGVNb2RlbFF1ZXJ5OiB7XHJcblx0XHRcdFx0XHRkaWNUeXBlTmFtZTogXCLmtL7moLzovablnotcIixcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGZvcm06IHtcclxuXHRcdFx0XHRcdGRldGFpbHM6IFtdLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0cGFnZTogMSxcclxuXHRcdFx0XHQvLyDmmL7npLrmkJzntKLmnaHku7ZcclxuXHRcdFx0XHRzaG93U2VhcmNoOiB0cnVlLFxyXG5cdFx0XHRcdGJvbVVuaXQsXHJcblxyXG5cdFx0XHRcdG11bHRpcGxlU2VsZWN0aW9uOiBbXSxcclxuXHJcblx0XHRcdFx0ZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG5cdFx0XHRcdGZvcm1UaXRsZTogXCJcIixcclxuXHRcdFx0XHRpc0VkaXQ6IGZhbHNlLFxyXG5cdFx0XHRcdGZvcm1Mb2FkaW5nOiBmYWxzZSxcclxuXHJcblx0XHRcdFx0dGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAyODAsXHJcblx0XHRcdFx0ZGV0YWlsVGFibGVIZWlnaHQ6IDI1MCxcclxuXHRcdFx0XHRkZXRhaWxzOiBbXSwgLy/kv67mlLnlrZDooajmlbDmja7mupBcclxuXHRcdFx0XHR2ZWhpY2xlTW9kZWxMaXN0OiBbXSwgLy/ovablnotsaXN0XHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cdFx0bW91bnRlZCgpIHtcclxuXHRcdFx0dGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG5cdFx0XHRcdHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2cob2Zmc2V0SGVpKTtcclxuXHRcdFx0XHRsZXQgYm94SCA9IHRoaXMuJHJlZnMuYm94Lm9mZnNldEhlaWdodDtcclxuXHRcdFx0XHR0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7IC8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG5cdFx0XHRcdC8vdGhpcy4kcmVmcy5mb3JtLnJlbmRlcmVkPXRydWU7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyhib3hIKTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHRoaXMudGFibGVIZWlnaHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sXHJcblx0XHRjcmVhdGVkKCkge1xyXG5cdFx0XHR0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG5cdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdH0sXHJcblx0XHRjb21wdXRlZDoge1xyXG5cdFx0XHRnZXREZWZhdWx0RmllbGQoKSB7XHJcblx0XHRcdFx0dmFyIHRlbXBzVGFicyA9IFtdO1xyXG5cdFx0XHRcdHRlbXBzVGFicy5wdXNoKHtcclxuXHRcdFx0XHRcdGxhYmVsOiBcIuaAu+aIkOWQjeensFwiLFxyXG5cdFx0XHRcdFx0cHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuXHRcdFx0XHRcdHdpZHRoOiAxODAsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGVtcHNUYWJzLnB1c2goe1xyXG5cdFx0XHRcdFx0bGFiZWw6IFwi6ZW/5o+P6L+wXCIsXHJcblx0XHRcdFx0XHRwcm9wOiBcImdyb3VwQ29kZVwiLFxyXG5cdFx0XHRcdFx0d2lkdGg6IDI0MCxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0ZW1wc1RhYnMucHVzaCh7XHJcblx0XHRcdFx0XHRsYWJlbDogXCLovablnovku6PnoIFcIixcclxuXHRcdFx0XHRcdHByb3A6IFwidmVoaWNsZU1vZGVsXCIsXHJcblx0XHRcdFx0XHR3aWR0aDogMTIwLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRlbXBzVGFicy5wdXNoKHtcclxuXHRcdFx0XHRcdGxhYmVsOiBcIuWIm+W7uuaXtumXtFwiLFxyXG5cdFx0XHRcdFx0cHJvcDogXCJjcmVhdGlvblRpbWVcIixcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAsXHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHRcdHJldHVybiB0ZW1wc1RhYnM7XHJcblx0XHRcdH0sXHJcblx0XHR9LFxyXG5cdFx0bWV0aG9kczoge1xyXG5cdFx0XHQvL+aKveWxiVxyXG5cdFx0XHRoYW5kbGVEcmF3ZXJPcGVuKHBhcmFtKSB7XHJcblx0XHRcdFx0dGhpcy5kcmF3ZXIgPSB0cnVlO1xyXG5cdFx0XHRcdHZhciBwYXJlbnRJZCA9IHBhcmFtLmlkOyAvL+S4u+mUrmlkXHJcblx0XHRcdFx0dGhpcy5jdXN0b21lckluZm9zID0gW3tcclxuXHRcdFx0XHRcdFBhcmVudElkOiBwYXJlbnRJZCxcclxuXHRcdFx0XHR9LCBdO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVEcmF3ZXJDbG9zZShkb25lKSB7XHJcblx0XHRcdFx0ZG9uZSgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzYXZlKCkge1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2codGhpcy4kcmVmcy5mb3JtKTtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoKHZhbGlkKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodmFsaWQpIHtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5sb2coXCLkv53lrZjlj4LmlbA6XCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XHJcblx0XHRcdFx0XHRcdGlmICh0aGlzLmlzRWRpdCkge1xyXG5cdFx0XHRcdFx0XHRcdC8v5L+u5pS5XHJcblx0XHRcdFx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdFx0XHRcdC5wdXRzKFwiL2FwaS9uZXdqaXQvYXNzZW1ibHktY2ZnLWVycC9cIiArIHRoaXMuZm9ybS5pZCwgdGhpcy5mb3JtKVxyXG5cdFx0XHRcdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZm9ybUxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuabtOaWsOaIkOWKn1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwic3VjY2Vzc1wiLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHQvL2luc2VydOa3u+WKoFxyXG5cdFx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybSkpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHRcdFx0XHQucG9zdHMoXCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctZXJwXCIsIHRoaXMuZm9ybSlcclxuXHRcdFx0XHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmZvcm1Mb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuJG5vdGlmeSh7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU6IFwi5oiQ5YqfXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZTogXCLmlrDlop7miJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOaWsOWiniAqL1xyXG5cdFx0XHRoYW5kbGVDcmVhdGUoKSB7XHJcblx0XHRcdFx0aWYgKHRoaXMuJHJlZnNbXCJmb3JtXCJdICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly90aGlzLiRyZWZzW1wiZm9ybVwiXSA9IFtdO1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRyZWZzW1wiZm9ybVwiXS5yZXNldEZpZWxkcygpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuZm9ybVRpdGxlID0gXCLmlrDlop5cIjtcclxuXHRcdFx0XHR0aGlzLmlzRWRpdCA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuZm9ybSA9IHt9O1xyXG5cdFx0XHRcdHRoaXMuZGV0YWlscyA9IFtdO1xyXG5cdFx0XHRcdC8vdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuXHRcdFx0XHR0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOS/ruaUuSAqL1xyXG5cdFx0XHRoYW5kbGVVcGRhdGUocm93KSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtVGl0bGUgPSBcIuS/ruaUuVwiO1xyXG5cdFx0XHRcdHRoaXMuaXNFZGl0ID0gdHJ1ZTtcclxuXHRcdFx0XHR0aGlzLmRldGFpbHMgPSBbXTtcclxuXHRcdFx0XHQvL3RoaXMuZ2V0dmVoaWNsZU1vZGVsKCk7XHJcblx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG1lc3NhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aGlzLmZldGNoRGF0YSh0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLmlkKTtcclxuXHRcdFx0XHRcdHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOWIoOmZpCAqL1xyXG5cdFx0XHRoYW5kbGVEZWxldGUocm93KSB7XHJcblx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuJG1lc3NhZ2Uoe1xyXG5cdFx0XHRcdFx0XHRtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG5cdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHQvLyB0aGlzLiRhbGVydChcIuaaguaXtuS4jeaUr+aMgeaJuemHj+WIoOmZpFwiLCBcIuaPkOekulwiLCB7XHJcblx0XHRcdFx0Ly8gICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuXHRcdFx0XHQvLyAgIGNhbGxiYWNrOiAoYWN0aW9uKSA9PiB7XHJcblx0XHRcdFx0Ly8gICAgIC8vXHJcblx0XHRcdFx0Ly8gICB9LFxyXG5cdFx0XHRcdC8vIH0pO1xyXG5cdFx0XHRcdHRoaXMuJGNvbmZpcm0oXHJcblx0XHRcdFx0XHRcdFwi5piv5ZCm5Yig6Zmk5oC75oiQXCIgKyB0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZSArIFwiP1wiLFxyXG5cdFx0XHRcdFx0XHRcIuaPkOekulwiLCB7XHJcblx0XHRcdFx0XHRcdFx0Y29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcblx0XHRcdFx0XHRcdFx0Y2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcIndhcm5pbmdcIixcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0KVxyXG5cdFx0XHRcdFx0LnRoZW4oKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRheGlvc1xyXG5cdFx0XHRcdFx0XHRcdC5kZWxldGVzKFxyXG5cdFx0XHRcdFx0XHRcdFx0XCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctZXJwL1wiICsgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZFxyXG5cdFx0XHRcdFx0XHRcdClcclxuXHRcdFx0XHRcdFx0XHQudGhlbigocmVzcG9uc2UpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IGluZGV4ID0gdGhpcy5saXN0LmluZGV4T2YodGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXSk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLiRub3RpZnkoe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0bWVzc2FnZTogXCLliKDpmaTmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzdWNjZXNzXCIsXHJcblx0XHRcdFx0XHRcdFx0XHRcdGR1cmF0aW9uOiAyMDAwLFxyXG5cdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLiRtZXNzYWdlKHtcclxuXHRcdFx0XHRcdFx0XHR0eXBlOiBcImluZm9cIixcclxuXHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuW3suWPlua2iOWIoOmZpFwiLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRmZXRjaERhdGEoaWQpIHtcclxuXHRcdFx0XHQvL+W+queOr+WKqOaAgVxyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyBpZClcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtO1xyXG5cdFx0XHRcdFx0XHQvL3RoaXMuZGV0YWlscyA9IHJlc3BvbnNlLml0ZW0uZGV0YWlscztcclxuXHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyh0aGlzLmRldGFpbHMpO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKiDlr7zlh7rlip/og70gKi9cclxuXHRcdFx0aGFuZGxlRG93bmxvYWQoKSB7XHJcblx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMubGlzdFF1ZXJ5KSk7XHJcblx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdC5wb3N0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvZXhwb3J0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG5cdFx0XHRcdFx0LnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuXHRcdFx0XHRcdFx0dGhpcy4kYXhpb3NcclxuXHRcdFx0XHRcdFx0XHQuQm9sYkdldHMoXCIvYXBpL25ld2ppdC9leGNsdWRlLXBhcnQtY2ZnL2Rvd25sb2FkL1wiICsgZmlsZW5hbWUpXHJcblx0XHRcdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoZmlsZW5hbWUuaW5kZXhPZihcIl9cIikgIT0gLTEpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bGV0IGRvd25OYW1lID1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWxlbmFtZS5zbGljZShmaWxlbmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb3dubG9hZEZpbGUocmVzcG9uc2UsIGRvd25OYW1lKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkb3dubG9hZEZpbGUocmVzcG9uc2UsIGZpbGVuYW1lKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGhpcy4kbm90aWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aXRsZTogXCLmiJDlip9cIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInN1Y2Nlc3NcIixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkdXJhdGlvbjogMjAwMCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8qKiDph43nva7mjInpkq7mk43kvZwgKi9cclxuXHRcdFx0cmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcblx0XHRcdFx0dGhpcy4kcmVmc1tyZWZOYW1lXS5yZXNldEZpZWxkcygpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0dmVoaWNsZU1vZGVsKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVRdWVyeSgpO1xyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZSA9IFtdO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcblx0XHRcdGhhbmRsZVF1ZXJ5KCkge1xyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LnNraXBDb3VudCA9IDE7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblx0XHRcdHNlbGVjdFZhbHVlKHBhcmFtcykge1xyXG5cdFx0XHRcdC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcblx0XHRcdFx0dGhpcy52ZXJzaW9uVmFsdWUgPSBwYXJhbXMudmFsdWU7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRzZWxlY3RPcHRpb25zQ2hhbmdlKGl0ZW0pIHtcclxuXHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0aW1wb3J0RXhjZWxEYXRhKCkge1xyXG5cdFx0XHRcdC8v5YWz6Zet5a+85YWl56qX5L2T5pe26LCD55SoXHJcblx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuc2hvd0V4Y2VsSW1wb3J0ID0gZmFsc2U7XHJcblx0XHRcdFx0dGhpcy5nZXRMaXN0KCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKiog5Yi35paw5YiX6KGoICovXHJcblx0XHRcdGhhbmRsZUhhbmRsZShkYXRhKSB7XHJcblx0XHRcdFx0aWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0TGlzdCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdC8q5re75Yqg5piO57uG56m66KGMKi9cclxuXHRcdFx0aGFuZGxlQWRkRGV0YWlscygpIHtcclxuXHRcdFx0XHR0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG5cdFx0XHRcdGlmICh0aGlzLmZvcm0uZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZvcm0uZGV0YWlscyA9IFtdO1xyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyg2NzkpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsZXQgb2JqID0ge307XHJcblx0XHRcdFx0b2JqLnBhcnRDb2RlID0gXCJcIjtcclxuXHRcdFx0XHRvYmouZGVzY3JpcHRpb24gPSBcIlwiO1xyXG5cdFx0XHRcdG9iai5wYXJ0TnVtID0gXCJcIjtcclxuXHRcdFx0XHRvYmouaXNLZXkgPSBmYWxzZTtcclxuXHRcdFx0XHRvYmouZGVzY3JpcHRpb24gPSBcIlwiO1xyXG5cclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5kZXRhaWxzKTtcclxuXHRcdFx0XHR0aGlzLmZvcm0uZGV0YWlscy5wdXNoKG9iaik7XHJcblx0XHRcdFx0Ly9jb25zb2xlLmxvZyg2ODgpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVEZWxldGVEZXRhaWxzKGluZGV4KSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtLmRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKDY5Myk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHQvKiog5qC85byP5YyW5a2X5q61ICovXHJcblx0XHRcdGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdDA6IFwi5pyq55Sf5pWIXCIsXHJcblx0XHRcdFx0XHRcdDI6IFwi5bey55Sf5pWIXCIsXHJcblx0XHRcdFx0XHRcdDM6IFwi5bey5Y+R5biDXCJcclxuXHRcdFx0XHRcdH0gW3Jvd1tjb2x1bW4ucHJvcGVydHldXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PSBcIm9ubGluZVRpbWVcIiB8fCBjb2x1bW4ucHJvcGVydHkgPT0gXCJyZWNlaXZlVGltZVwiKSB7XHJcblx0XHRcdFx0XHR2YXIgZGF0ZSA9IHJvd1tjb2x1bW4ucHJvcGVydHldO1xyXG5cdFx0XHRcdFx0aWYgKGRhdGUgPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tOnNzXCIpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV0gfHwgXCItLVwiO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRyb2xlRmlsdGVyKHR5cGUpIHtcclxuXHRcdFx0XHRyZXR1cm4gcHJvamVjdFR5cGVLZXlWYWx1ZVt0eXBlXTtcclxuXHRcdFx0fSxcclxuXHRcdFx0Z2V0TGlzdCgpIHtcclxuXHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIuWIm+W7uuaXtumXtO+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuXHRcdFx0XHR0aGlzLmxpc3RRdWVyeS5za2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiAxMDtcclxuXHRcdFx0XHRpZiAodGhpcy5saXN0UXVlcnkuY3JlYXRlVGltZVZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmJlZ2luQ3JlYXRlVGltZSA9IHRoaXMubGlzdFF1ZXJ5LmNyZWF0ZVRpbWVWYWx1ZVswXTtcclxuXHRcdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LmVuZENyZWF0ZVRpbWUgPSB0aGlzLmxpc3RRdWVyeS5jcmVhdGVUaW1lVmFsdWVbMV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuXHRcdFx0XHRcdFx0dGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Ly/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sIDUwMCk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0Z2V0RGV0aWFsTGlzdChwYXJ0Q29kZSkge1xyXG5cdFx0XHRcdHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKFwi6K+m6KGo5p2h5Lu277yaXCIgKyBKU09OLnN0cmluZ2lmeSh0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZCkpO1xyXG5cdFx0XHRcdHRoaXMuJGF4aW9zXHJcblx0XHRcdFx0XHQuZ2V0cyhcIi9hcGkvbmV3aml0L2Fzc2VtYmx5LWNmZy1lcnAvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuXHRcdFx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZyhwYXJ0Q29kZSk7XHJcblx0XHRcdFx0XHRcdGlmIChwYXJ0Q29kZSAhPT0gXCJcIiAmJiBwYXJ0Q29kZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhwYXJ0Q29kZSlcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtLmRldGFpbHMuZmlsdGVyKFxyXG5cdFx0XHRcdFx0XHRcdFx0KHUpID0+IHUucGFydENvZGUgPT09IHBhcnRDb2RlXHJcblx0XHRcdFx0XHRcdFx0KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtLmRldGFpbHM7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Ly9hbGVydChKU09OLnN0cmluZ2lmeShyZXNwb25zZS5JdGVtcykpXHJcblx0XHRcdFx0XHRcdC8vdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Ly/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH0sIDUwMCk7XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0LmNhdGNoKCgpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHR2YWx1ZXNlbGVjdENoYW5nZSgpIHt9LFxyXG5cdFx0XHRoYW5kbGVJbXBvcnRTQVAoKSB7XHJcblx0XHRcdFx0Ly/lr7zlhaVcclxuXHRcdFx0XHR0aGlzLnNob3dFeGNlbEltcG9ydCA9IHRydWU7XHJcblx0XHRcdFx0dGhpcy4kcmVmcy5pbXBvcnRleGNlbC5oYW5kbGVJbXBvcnRFeGNlbENsaWNrKCk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRoYW5kbGVGaWx0ZXIoKSB7XHJcblx0XHRcdFx0dGhpcy5wYWdlID0gMTtcclxuXHRcdFx0XHR0aGlzLmdldExpc3QoKTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHNvcnRDaGFuZ2UoZGF0YSkge1xyXG5cdFx0XHRcdGNvbnN0IHtcclxuXHRcdFx0XHRcdHByb3AsXHJcblx0XHRcdFx0XHRvcmRlclxyXG5cdFx0XHRcdH0gPSBkYXRhO1xyXG5cdFx0XHRcdGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuXHRcdFx0XHRcdHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcblx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuXHRcdFx0fSxcclxuXHRcdFx0LyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcblx0XHRcdGNlbGxTdHlsZSh7XHJcblx0XHRcdFx0cm93LFxyXG5cdFx0XHRcdGNvbHVtbixcclxuXHRcdFx0XHRyb3dJbmRleCxcclxuXHRcdFx0XHRjb2x1bW5JbmRleFxyXG5cdFx0XHR9KSB7XHJcblx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0dGV4dEFsaWduOiBcInJpZ2h0XCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdHRleHRBbGlnbjogXCJsZWZ0XCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHQvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuXHRcdFx0aGVhZGVyUm93U3R5bGUoe1xyXG5cdFx0XHRcdHJvdyxcclxuXHRcdFx0XHRjb2x1bW4sXHJcblx0XHRcdFx0cm93SW5kZXgsXHJcblx0XHRcdFx0Y29sdW1uSW5kZXhcclxuXHRcdFx0fSkge1xyXG5cdFx0XHRcdGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwicXR5XCIpIHtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdHRleHRBbGlnbjogXCJyaWdodFwiLFxyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIlxyXG5cdFx0XHRcdFx0fTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0dGV4dEFsaWduOiBcImxlZnRcIixcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogXCIjRkFGQUZBXCJcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cdFx0XHRoYW5kbGVSb3dDbGljayhyb3csIGNvbHVtbiwgZXZlbnQpIHtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUuY2xlYXJTZWxlY3Rpb24oKTtcclxuXHRcdFx0XHR0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcblx0XHRcdH0sXHJcblx0XHRcdGdldHZlaGljbGVNb2RlbCgpIHtcclxuXHRcdFx0XHR0aGlzLiRheGlvc1xyXG5cdFx0XHRcdFx0LmdldHMoXCIvYXBpL25ld2ppdC9kaWMvbGlzdFwiLCB0aGlzLnZlaGljbGVNb2RlbFF1ZXJ5KVxyXG5cdFx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnZlaGljbGVNb2RlbExpc3QgPSByZXNwb25zZS5pdGVtO1xyXG5cdFx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKClcclxuXHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQuY2F0Y2goKCkgPT4ge30pO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRjbG9zZURpYWxvZygpIHtcclxuXHRcdFx0XHQvL3RoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSBbXTsvL+a4heepuuaVsOaNrlxyXG5cdFx0XHR9LFxyXG5cdFx0fSxcclxuXHR9O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcblx0QGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG5cclxuXHQvLyAvKuihqOagvOWFqOmAieahhuWOu+mZpOepuuahhiovXHJcblx0Ly8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGwgLmVsLWNoZWNrYm94X19pbm5lciB7XHJcblx0Ly8gICBkaXNwbGF5OiBub25lO1xyXG5cdC8vICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdC8vIH1cclxuXHQvLyAvKuihqOagvOWFqOmAieahhuaUueS4uu+8mumAieaLqSovXHJcblx0Ly8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGw6YmVmb3JlIHtcclxuXHQvLyAgIGNvbnRlbnQ6IFwi5piv5ZCmS2V55Lu2XCI7XHJcblx0Ly8gICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0Ly8gICBsZWZ0OiA3cHg7XHJcblx0Ly8gfVxyXG5cdC5kaXZpZGVyMSB7XHJcblx0XHRtYXJnaW46IDA7XHJcblx0XHQvL3dpZHRoOiAxMDAlO1xyXG5cdH1cclxuXHJcblx0LmZvcm1pdGVtIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0fVxyXG48L3N0eWxlPlxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZTU2NDdmZDgmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9ZTU2NDdmZDgmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJlNTY0N2ZkOFwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///9e7c\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxTQUFTLENBQUNDLE1BQVYsS0FBcUIsQ0FBekIsRUFBNEI7QUFDMUIsV0FBTyxJQUFQO0FBQ0Q7O0FBQ0QsTUFBTUMsTUFBTSxHQUFHSCxPQUFPLElBQUkseUJBQTFCO0FBQ0EsTUFBSUksSUFBSjs7QUFDQSxNQUFJLGdJQUFPTCxJQUFQLE1BQWdCLFFBQXBCLEVBQThCO0FBQzVCSyxRQUFJLEdBQUdMLElBQVA7QUFDRCxHQUZELE1BRU87QUFDTCxRQUFJLENBQUMsS0FBS0EsSUFBTixFQUFZRyxNQUFaLEtBQXVCLEVBQTNCLEVBQStCSCxJQUFJLEdBQUdNLFFBQVEsQ0FBQ04sSUFBRCxDQUFSLEdBQWlCLElBQXhCO0FBQy9CSyxRQUFJLEdBQUcsSUFBSUUsSUFBSixDQUFTUCxJQUFULENBQVA7QUFDRDs7QUFDRCxNQUFNUSxTQUFTLEdBQUc7QUFDaEJDLEtBQUMsRUFBRUosSUFBSSxDQUFDSyxXQUFMLEVBRGE7QUFFaEJDLEtBQUMsRUFBRU4sSUFBSSxDQUFDTyxRQUFMLEtBQWtCLENBRkw7QUFHaEJDLEtBQUMsRUFBRVIsSUFBSSxDQUFDUyxPQUFMLEVBSGE7QUFJaEJDLEtBQUMsRUFBRVYsSUFBSSxDQUFDVyxRQUFMLEVBSmE7QUFLaEJDLEtBQUMsRUFBRVosSUFBSSxDQUFDYSxVQUFMLEVBTGE7QUFNaEJDLEtBQUMsRUFBRWQsSUFBSSxDQUFDZSxVQUFMLEVBTmE7QUFPaEJDLEtBQUMsRUFBRWhCLElBQUksQ0FBQ2lCLE1BQUw7QUFQYSxHQUFsQjtBQVNBLE1BQU1DLFFBQVEsR0FBR25CLE1BQU0sQ0FBQ29CLE9BQVAsQ0FBZSxxQkFBZixFQUFzQyxVQUFDQyxNQUFELEVBQVNDLEdBQVQsRUFBaUI7QUFDdEUsUUFBSUMsS0FBSyxHQUFHbkIsU0FBUyxDQUFDa0IsR0FBRCxDQUFyQixDQURzRSxDQUV0RTs7QUFDQSxRQUFJQSxHQUFHLEtBQUssR0FBWixFQUFpQjtBQUNmLGFBQU8sQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXLEdBQVgsRUFBZ0IsR0FBaEIsRUFBcUIsR0FBckIsRUFBMEIsR0FBMUIsRUFBK0IsR0FBL0IsRUFBb0NDLEtBQXBDLENBQVA7QUFDRDs7QUFDRCxRQUFJRixNQUFNLENBQUN0QixNQUFQLEdBQWdCLENBQWhCLElBQXFCd0IsS0FBSyxHQUFHLEVBQWpDLEVBQXFDO0FBQ25DQSxXQUFLLEdBQUcsTUFBTUEsS0FBZDtBQUNEOztBQUNELFdBQU9BLEtBQUssSUFBSSxDQUFoQjtBQUNELEdBVmdCLENBQWpCO0FBV0EsU0FBT0osUUFBUDtBQUNEO0FBRU0sU0FBU0ssVUFBVCxDQUFvQjVCLElBQXBCLEVBQTBCNkIsTUFBMUIsRUFBa0M7QUFDdkM3QixNQUFJLEdBQUcsQ0FBQ0EsSUFBRCxHQUFRLElBQWY7QUFDQSxNQUFNYSxDQUFDLEdBQUcsSUFBSU4sSUFBSixDQUFTUCxJQUFULENBQVY7QUFDQSxNQUFNOEIsR0FBRyxHQUFHdkIsSUFBSSxDQUFDdUIsR0FBTCxFQUFaO0FBRUEsTUFBTUMsSUFBSSxHQUFHLENBQUNELEdBQUcsR0FBR2pCLENBQVAsSUFBWSxJQUF6Qjs7QUFFQSxNQUFJa0IsSUFBSSxHQUFHLEVBQVgsRUFBZTtBQUNiLFdBQU8sSUFBUDtBQUNELEdBRkQsTUFFTyxJQUFJQSxJQUFJLEdBQUcsSUFBWCxFQUFpQjtBQUN0QjtBQUNBLFdBQU9DLElBQUksQ0FBQ0MsSUFBTCxDQUFVRixJQUFJLEdBQUcsRUFBakIsSUFBdUIsS0FBOUI7QUFDRCxHQUhNLE1BR0EsSUFBSUEsSUFBSSxHQUFHLE9BQU8sRUFBbEIsRUFBc0I7QUFDM0IsV0FBT0MsSUFBSSxDQUFDQyxJQUFMLENBQVVGLElBQUksR0FBRyxJQUFqQixJQUF5QixLQUFoQztBQUNELEdBRk0sTUFFQSxJQUFJQSxJQUFJLEdBQUcsT0FBTyxFQUFQLEdBQVksQ0FBdkIsRUFBMEI7QUFDL0IsV0FBTyxLQUFQO0FBQ0Q7O0FBQ0QsTUFBSUYsTUFBSixFQUFZO0FBQ1YsV0FBTzlCLFNBQVMsQ0FBQ0MsSUFBRCxFQUFPNkIsTUFBUCxDQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQ0VoQixDQUFDLENBQUNELFFBQUYsS0FDQSxDQURBLEdBRUEsR0FGQSxHQUdBQyxDQUFDLENBQUNDLE9BQUYsRUFIQSxHQUlBLEdBSkEsR0FLQUQsQ0FBQyxDQUFDRyxRQUFGLEVBTEEsR0FNQSxHQU5BLEdBT0FILENBQUMsQ0FBQ0ssVUFBRixFQVBBLEdBUUEsR0FURjtBQVdEO0FBQ0Y7QUFFTSxTQUFTZ0IsVUFBVCxDQUFvQkMsSUFBcEIsRUFBMEI7QUFDL0IsU0FBTywwQkFBMEJDLElBQTFCLENBQStCRCxJQUEvQixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7O0FBQ1MsU0FBU0UsYUFBVCxDQUF1QkMsSUFBdkIsRUFBNkJDLE9BQTdCLEVBQXNDQyxRQUF0QyxFQUFnRDtBQUNyRDtBQUNBRCxTQUFPLEdBQUdBLE9BQU8sSUFBSSxHQUFyQjtBQUNBLE1BQU1FLE1BQU0sR0FBRyxJQUFJQyxVQUFKLEVBQWY7O0FBQ0FELFFBQU0sQ0FBQ0UsTUFBUCxHQUFnQixVQUFTQyxLQUFULEVBQWdCO0FBQzlCLFFBQUluQixNQUFNLEdBQUdtQixLQUFLLENBQUNDLE1BQU4sQ0FBYXBCLE1BQTFCOztBQUNBLFFBQUlhLElBQUksQ0FBQ1EsSUFBTCxHQUFZLE1BQVosSUFBc0JSLElBQUksQ0FBQ1MsSUFBTCxLQUFjLFdBQXBDLElBQW1EUixPQUFPLEdBQUcsQ0FBakUsRUFBb0U7QUFBRTtBQUNwRSxVQUFNUyxHQUFHLEdBQUcsSUFBSUMsS0FBSixFQUFaO0FBQ0FELFNBQUcsQ0FBQ0UsR0FBSixHQUFVekIsTUFBVjs7QUFDQXVCLFNBQUcsQ0FBQ0wsTUFBSixHQUFhLFlBQVc7QUFDdEI7QUFDQSxZQUFJUSxLQUFLLEdBQUdILEdBQUcsQ0FBQ0csS0FBaEI7QUFDQSxZQUFJQyxNQUFNLEdBQUdKLEdBQUcsQ0FBQ0ksTUFBakI7QUFFQSxZQUFJQyxLQUFKOztBQUNBLFlBQUksQ0FBQ0EsS0FBSyxHQUFHRixLQUFLLEdBQUdDLE1BQVIsR0FBaUIsT0FBMUIsSUFBcUMsQ0FBekMsRUFBNEM7QUFDMUNDLGVBQUssR0FBR3JCLElBQUksQ0FBQ3NCLElBQUwsQ0FBVUQsS0FBVixDQUFSO0FBQ0FGLGVBQUssSUFBSUUsS0FBVDtBQUNBRCxnQkFBTSxJQUFJQyxLQUFWO0FBQ0QsU0FKRCxNQUlPO0FBQ0xBLGVBQUssR0FBRyxDQUFSO0FBQ0Q7O0FBQ0QsWUFBSUUsTUFBTSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsUUFBdkIsQ0FBYjtBQUNBRixjQUFNLENBQUNKLEtBQVAsR0FBZUEsS0FBZjtBQUNBSSxjQUFNLENBQUNILE1BQVAsR0FBZ0JBLE1BQWhCLENBZnNCLENBZ0J0Qjs7QUFDQSxZQUFJTSxHQUFHLEdBQUdILE1BQU0sQ0FBQ0ksVUFBUCxDQUFrQixJQUFsQixDQUFWO0FBQ0FELFdBQUcsQ0FBQ0UsU0FBSixHQUFnQixNQUFoQjtBQUNBRixXQUFHLENBQUNHLFFBQUosQ0FBYSxDQUFiLEVBQWdCLENBQWhCLEVBQW1CTixNQUFNLENBQUNKLEtBQTFCLEVBQWlDSSxNQUFNLENBQUNILE1BQXhDLEVBbkJzQixDQW9CdEI7O0FBQ0EsWUFBSVUsS0FBSjs7QUFDQSxZQUFJLENBQUNBLEtBQUssR0FBR1gsS0FBSyxHQUFHQyxNQUFSLEdBQWlCLE9BQTFCLElBQXFDLENBQXpDLEVBQTRDO0FBQzFDVSxlQUFLLEdBQUcsQ0FBQyxFQUFFOUIsSUFBSSxDQUFDc0IsSUFBTCxDQUFVUSxLQUFWLElBQW1CLENBQXJCLENBQVQsQ0FEMEMsQ0FFMUM7QUFDQTs7QUFDQSxjQUFJQyxFQUFFLEdBQUcsQ0FBQyxFQUFFWixLQUFLLEdBQUdXLEtBQVYsQ0FBVjtBQUNBLGNBQUlFLEVBQUUsR0FBRyxDQUFDLEVBQUVaLE1BQU0sR0FBR1UsS0FBWCxDQUFWO0FBQ0EsY0FBSUcsT0FBTyxHQUFHVCxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsUUFBdkIsQ0FBZDtBQUNBUSxpQkFBTyxDQUFDZCxLQUFSLEdBQWdCWSxFQUFoQjtBQUNBRSxpQkFBTyxDQUFDYixNQUFSLEdBQWlCWSxFQUFqQjs7QUFDQSxlQUFLLElBQUkvQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHNkMsS0FBcEIsRUFBMkI3QyxDQUFDLEVBQTVCLEVBQWdDO0FBQzlCLGlCQUFLLElBQUlpRCxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixLQUFwQixFQUEyQkksQ0FBQyxFQUE1QixFQUFnQztBQUM5QixrQkFBSUMsSUFBSSxHQUFHRixPQUFPLENBQUNOLFVBQVIsQ0FBbUIsSUFBbkIsQ0FBWDtBQUNBUSxrQkFBSSxDQUFDQyxTQUFMLENBQWVwQixHQUFmLEVBQW9CL0IsQ0FBQyxHQUFHOEMsRUFBSixHQUFTVixLQUE3QixFQUFvQ2EsQ0FBQyxHQUFHRixFQUFKLEdBQVNYLEtBQTdDLEVBQW9EVSxFQUFFLEdBQUdWLEtBQXpELEVBQWdFVyxFQUFFLEdBQUdYLEtBQXJFLEVBQTRFLENBQTVFLEVBQStFLENBQS9FLEVBQWtGVSxFQUFsRixFQUFzRkMsRUFBdEY7QUFFQU4saUJBQUcsQ0FBQ1UsU0FBSixDQUFjSCxPQUFkLEVBQXVCaEQsQ0FBQyxHQUFHOEMsRUFBM0IsRUFBK0JHLENBQUMsR0FBR0YsRUFBbkMsRUFBdUNELEVBQXZDLEVBQTJDQyxFQUEzQztBQUNEO0FBQ0Y7O0FBQ0RDLGlCQUFPLENBQUNkLEtBQVIsR0FBZ0JjLE9BQU8sQ0FBQ2IsTUFBUixHQUFpQixDQUFqQztBQUNELFNBbEJELE1Ba0JPO0FBQ0xNLGFBQUcsQ0FBQ1UsU0FBSixDQUFjcEIsR0FBZCxFQUFtQixDQUFuQixFQUFzQixDQUF0QixFQUF5QkcsS0FBekIsRUFBZ0NDLE1BQWhDO0FBQ0QsU0ExQ3FCLENBMkN0Qjs7O0FBQ0EsWUFBSWlCLEtBQUssR0FBR2QsTUFBTSxDQUFDZSxTQUFQLENBQWlCLFlBQWpCLEVBQStCL0IsT0FBL0IsQ0FBWjtBQUNBZ0IsY0FBTSxDQUFDSixLQUFQLEdBQWVJLE1BQU0sQ0FBQ0gsTUFBUCxHQUFnQixDQUEvQjtBQUNBWixnQkFBUSxDQUFDNkIsS0FBRCxDQUFSO0FBQ0QsT0EvQ0Q7QUFnREQsS0FuREQsTUFtRE87QUFBRTtBQUNQN0IsY0FBUSxDQUFDZixNQUFELENBQVI7QUFDRDtBQUNGLEdBeEREOztBQXlEQWdCLFFBQU0sQ0FBQzhCLGFBQVAsQ0FBcUJqQyxJQUFyQjtBQUNEO0FBRUQ7O0FBQ08sU0FBU2tDLFVBQVQsQ0FBb0IvQyxNQUFwQixFQUE0QjtBQUNqQyxNQUFJZ0QsR0FBRyxHQUFHaEQsTUFBTSxDQUFDaUQsS0FBUCxDQUFhLEdBQWIsQ0FBVjtBQUNBLE1BQUlDLElBQUksR0FBR0YsR0FBRyxDQUFDLENBQUQsQ0FBSCxDQUFPRyxLQUFQLENBQWEsUUFBYixFQUF1QixDQUF2QixDQUFYO0FBQ0EsTUFBSUMsSUFBSSxHQUFHQyxJQUFJLENBQUNMLEdBQUcsQ0FBQyxDQUFELENBQUosQ0FBZjtBQUNBLE1BQUlNLENBQUMsR0FBR0YsSUFBSSxDQUFDMUUsTUFBYjtBQUNBLE1BQUk2RSxLQUFLLEdBQUcsSUFBSUMsVUFBSixDQUFlRixDQUFmLENBQVo7O0FBQ0EsU0FBT0EsQ0FBQyxFQUFSLEVBQVk7QUFDVkMsU0FBSyxDQUFDRCxDQUFELENBQUwsR0FBV0YsSUFBSSxDQUFDSyxVQUFMLENBQWdCSCxDQUFoQixDQUFYO0FBQ0Q7O0FBQ0QsU0FBTyxJQUFJSSxJQUFKLENBQVMsQ0FBQ0gsS0FBRCxDQUFULEVBQWtCO0FBQ3ZCakMsUUFBSSxFQUFFNEI7QUFEaUIsR0FBbEIsQ0FBUDtBQUdEO0FBRUQ7O0FBQ08sU0FBU1MsUUFBVCxDQUFrQnRDLElBQWxCLEVBQXdCO0FBQzdCLE1BQUl1QyxRQUFRLEdBQUd2QyxJQUFmOztBQUNBLE1BQUksT0FBT0EsSUFBUCxLQUFnQixRQUFoQixJQUE0QkEsSUFBSSxDQUFDd0MsV0FBTCxJQUFvQkMsTUFBcEQsRUFBNEQ7QUFDMURGLFlBQVEsR0FBRy9FLFFBQVEsQ0FBQ3dDLElBQUQsQ0FBbkI7QUFDRDs7QUFDRCxNQUFJMEMsVUFBSjs7QUFDQSxNQUFJbEYsUUFBUSxDQUFDK0UsUUFBUSxHQUFHLElBQVgsR0FBa0IsSUFBbkIsQ0FBUixHQUFtQyxDQUF2QyxFQUEwQztBQUN4Q0csY0FBVSxHQUFHLENBQUNILFFBQVEsR0FBRyxJQUFYLEdBQWtCLElBQW5CLEVBQXlCSSxPQUF6QixDQUFpQyxDQUFqQyxJQUFzQyxJQUFuRDtBQUNELEdBRkQsTUFFTyxJQUFJbkYsUUFBUSxDQUFDK0UsUUFBUSxHQUFHLElBQVosQ0FBUixHQUE0QixDQUFoQyxFQUFtQztBQUN4Q0csY0FBVSxHQUFHLENBQUNILFFBQVEsR0FBRyxJQUFaLEVBQWtCSSxPQUFsQixDQUEwQixDQUExQixJQUErQixJQUE1QztBQUNELEdBRk0sTUFFQTtBQUNMRCxjQUFVLEdBQUdILFFBQVEsR0FBRyxNQUF4QjtBQUNEOztBQUNELFNBQU9HLFVBQVA7QUFDRDtBQUVEOztBQUNBO0FBR08sU0FBU0UsV0FBVCxHQUF1QjtBQUM1QixTQUFPQyx3RUFBWSxDQUFDQyxVQUFiLEVBQVA7QUFDRDtBQUVEOztBQUNPLFNBQVNDLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTZCO0FBQ2xDLE1BQUksZ0lBQU9BLE1BQVAsTUFBa0IsUUFBdEIsRUFBZ0M7QUFDOUIsUUFBSUMsVUFBVSxHQUFHRCxNQUFNLFlBQVlFLEtBQWxCLEdBQTBCLEVBQTFCLEdBQStCLEVBQWhEOztBQUNBLFNBQUssSUFBSUMsSUFBVCxJQUFpQkgsTUFBakIsRUFBeUI7QUFDdkIsVUFBSSxDQUFDQSxNQUFNLENBQUNHLElBQUQsQ0FBWCxFQUFtQjtBQUNqQkYsa0JBQVUsQ0FBQ0UsSUFBRCxDQUFWLEdBQW1CSCxNQUFNLENBQUNHLElBQUQsQ0FBekI7QUFDRCxPQUZELE1BRU87QUFDTEYsa0JBQVUsQ0FBQ0UsSUFBRCxDQUFWLEdBQW1CLGdJQUFPSCxNQUFNLENBQUNHLElBQUQsQ0FBYixNQUF3QixRQUF4QixHQUFtQ0osV0FBVyxDQUFDQyxNQUFNLENBQUNHLElBQUQsQ0FBUCxDQUE5QyxHQUErREgsTUFBTSxDQUFDRyxJQUFELENBQXhGO0FBQ0Q7QUFDRjs7QUFDRCxXQUFPRixVQUFQO0FBQ0Q7O0FBQ0QsU0FBT0QsTUFBUDtBQUNEO0FBRUQ7O0FBQ08sU0FBU0ksZUFBVCxDQUF5QjVELElBQXpCLEVBQStCO0FBQUM2RCxPQUFLLENBQUNDLElBQUksQ0FBQ0MsU0FBTCxDQUFlL0QsSUFBZixDQUFELENBQUw7O0FBQ3JDLE1BQUlBLElBQUksQ0FBQ1MsSUFBTCxDQUFVdUQsT0FBVixDQUFrQixPQUFsQixNQUErQixDQUFDLENBQXBDLEVBQXVDO0FBQ3JDLFdBQU9DLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsR0FGRCxNQUVPLElBQUlqRSxJQUFJLENBQUNTLElBQUwsQ0FBVXVELE9BQVYsQ0FBa0IsT0FBbEIsTUFBK0IsQ0FBQyxDQUFoQyxJQUFxQ2hFLElBQUksQ0FBQ1MsSUFBTCxDQUFVdUQsT0FBVixDQUFrQixPQUFsQixNQUErQixDQUFDLENBQXpFLEVBQTRFO0FBQ2pGLFdBQU9DLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsR0FGTSxNQUVBO0FBQ0wsUUFBSUMsS0FBSyxHQUFHbEUsSUFBSSxDQUFDbUUsSUFBTCxDQUFVQyxXQUFWLENBQXNCLEdBQXRCLENBQVo7QUFDQSxRQUFJQyxHQUFHLEdBQUdyRSxJQUFJLENBQUNtRSxJQUFMLENBQVVHLE1BQVYsQ0FBaUJKLEtBQUssR0FBRyxDQUF6QixDQUFWOztBQUNBLFFBQUlLLFlBQVksQ0FBQyxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCLE1BQWhCLEVBQXdCLEtBQXhCLENBQUQsRUFBaUNGLEdBQWpDLENBQWhCLEVBQXVEO0FBQ3JELGFBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsS0FGRCxNQUVPLElBQUlNLFlBQVksQ0FBQyxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLEtBQWhCLEVBQXVCLE1BQXZCLENBQUQsRUFBaUNGLEdBQWpDLENBQWhCLEVBQXVEO0FBQzVELGFBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsS0FGTSxNQUVBLElBQUlNLFlBQVksQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLENBQUQsRUFBaUJGLEdBQWpCLENBQWhCLEVBQXVDO0FBQzVDLGFBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsS0FGTSxNQUVBLElBQUlJLEdBQUcsS0FBSyxLQUFaLEVBQW1CO0FBQ3hCLGFBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsS0FGTSxNQUVBLElBQUlJLEdBQUcsS0FBSyxLQUFSLElBQWlCQSxHQUFHLEtBQUssTUFBN0IsRUFBcUM7QUFDMUMsYUFBT0osbUJBQU8sQ0FBQyxNQUFELENBQWQ7QUFDRCxLQUZNLE1BRUEsSUFBSU0sWUFBWSxDQUFDLENBQUMsS0FBRCxFQUFRLE1BQVIsQ0FBRCxFQUFrQkYsR0FBbEIsQ0FBaEIsRUFBd0M7QUFDN0MsYUFBT0osbUJBQU8sQ0FBQyxNQUFELENBQWQ7QUFDRDtBQUNGOztBQUNELFNBQU9BLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0Q7QUFFTSxTQUFTTyx5QkFBVCxDQUFtQ0gsR0FBbkMsRUFBd0M7QUFDN0MsTUFBSUUsWUFBWSxDQUFDLENBQUMsS0FBRCxFQUFRLEtBQVIsRUFBZSxLQUFmLENBQUQsRUFBd0JGLEdBQXhCLENBQWhCLEVBQThDO0FBQzVDLFdBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsR0FGRCxNQUVPLElBQUlNLFlBQVksQ0FBQyxDQUFDLEtBQUQsRUFBUSxLQUFSLEVBQWUsS0FBZixDQUFELEVBQXdCRixHQUF4QixDQUFoQixFQUE4QztBQUNuRCxXQUFPSixtQkFBTyxDQUFDLE1BQUQsQ0FBZDtBQUNELEdBRk0sTUFFQSxJQUFJTSxZQUFZLENBQUMsQ0FBQyxNQUFELEVBQVMsS0FBVCxFQUFnQixNQUFoQixFQUF3QixLQUF4QixDQUFELEVBQWlDRixHQUFqQyxDQUFoQixFQUF1RDtBQUM1RCxXQUFPSixtQkFBTyxDQUFDLE1BQUQsQ0FBZDtBQUNELEdBRk0sTUFFQSxJQUFJTSxZQUFZLENBQUMsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQixLQUFoQixFQUF1QixNQUF2QixDQUFELEVBQWlDRixHQUFqQyxDQUFoQixFQUF1RDtBQUM1RCxXQUFPSixtQkFBTyxDQUFDLE1BQUQsQ0FBZDtBQUNELEdBRk0sTUFFQSxJQUFJTSxZQUFZLENBQUMsQ0FBQyxLQUFELEVBQVEsS0FBUixDQUFELEVBQWlCRixHQUFqQixDQUFoQixFQUF1QztBQUM1QyxXQUFPSixtQkFBTyxDQUFDLE1BQUQsQ0FBZDtBQUNELEdBRk0sTUFFQSxJQUFJSSxHQUFHLEtBQUssS0FBWixFQUFtQjtBQUN4QixXQUFPSixtQkFBTyxDQUFDLE1BQUQsQ0FBZDtBQUNELEdBRk0sTUFFQSxJQUFJSSxHQUFHLEtBQUssS0FBUixJQUFpQkEsR0FBRyxLQUFLLE1BQTdCLEVBQXFDO0FBQzFDLFdBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0QsR0FGTSxNQUVBLElBQUlNLFlBQVksQ0FBQyxDQUFDLEtBQUQsRUFBUSxNQUFSLENBQUQsRUFBa0JGLEdBQWxCLENBQWhCLEVBQXdDO0FBQzdDLFdBQU9KLG1CQUFPLENBQUMsTUFBRCxDQUFkO0FBQ0Q7O0FBQ0QsU0FBT0EsbUJBQU8sQ0FBQyxNQUFELENBQWQ7QUFDRDs7QUFFRCxTQUFTTSxZQUFULENBQXNCRSxLQUF0QixFQUE2QkMsTUFBN0IsRUFBcUM7QUFDbkMsU0FBT0QsS0FBSyxDQUFDRSxJQUFOLENBQVcsVUFBQ2hCLElBQUQsRUFBVTtBQUMxQixXQUFPQSxJQUFJLEtBQUtlLE1BQWhCO0FBQ0QsR0FGTSxDQUFQO0FBR0Q7QUFFRDs7O0FBQ08sU0FBU0UsYUFBVCxDQUF1QkMsTUFBdkIsRUFBK0I7QUFDcEMsTUFBSUMsS0FBSyxHQUFHLGlCQUFaOztBQUNBLE1BQUksQ0FBQ0EsS0FBSyxDQUFDaEYsSUFBTixDQUFXK0UsTUFBWCxDQUFMLEVBQXlCO0FBQ3ZCLFdBQU8sS0FBUDtBQUNEOztBQUNELFNBQU8sSUFBUDtBQUNEO0FBRUQ7O0FBQ08sU0FBU0UsZ0JBQVQsQ0FBMEJGLE1BQTFCLEVBQWtDO0FBQ3ZDLE1BQUlDLEtBQUssR0FBRywrQkFBWjs7QUFDQSxNQUFJLENBQUNBLEtBQUssQ0FBQ2hGLElBQU4sQ0FBVytFLE1BQVgsQ0FBTCxFQUF5QjtBQUN2QixXQUFPLEtBQVA7QUFDRDs7QUFDRCxTQUFPLElBQVA7QUFDRDtBQUVNLFNBQVNHLGlCQUFULENBQTJCSCxNQUEzQixFQUFtQztBQUN4QyxNQUFJQyxLQUFLLEdBQUcsbUJBQVo7O0FBQ0EsTUFBSSxDQUFDQSxLQUFLLENBQUNoRixJQUFOLENBQVcrRSxNQUFYLENBQUwsRUFBeUI7QUFDdkIsV0FBTyxLQUFQO0FBQ0Q7O0FBQ0QsU0FBTyxJQUFQO0FBQ0Q7QUFFRDs7QUFDTyxTQUFTSSxxQkFBVCxDQUErQkosTUFBL0IsRUFBdUM7QUFDNUMsTUFBSUMsS0FBSyxHQUFHLCtCQUFaOztBQUNBLE1BQUksQ0FBQ0EsS0FBSyxDQUFDaEYsSUFBTixDQUFXK0UsTUFBWCxDQUFMLEVBQXlCO0FBQ3ZCLFdBQU8sS0FBUDtBQUNEOztBQUNELFNBQU8sSUFBUDtBQUNEO0FBRUQ7O0FBQ08sU0FBU0ssZ0JBQVQsQ0FBMEJDLE1BQTFCLEVBQWtDO0FBQ3ZDLE1BQUlMLEtBQUssR0FBRyw4QkFBWjs7QUFDQSxNQUFJLENBQUNBLEtBQUssQ0FBQ2hGLElBQU4sQ0FBV3FGLE1BQVgsQ0FBTCxFQUF5QjtBQUN2QixXQUFPLEtBQVA7QUFDRDs7QUFDRCxTQUFPLElBQVA7QUFDRDtBQUVEOztBQUNPLFNBQVNDLGVBQVQsQ0FBeUJDLEtBQXpCLEVBQWdDO0FBQ3JDLE1BQUlQLEtBQUssR0FBRyw2REFBWjs7QUFDQSxNQUFJLENBQUNBLEtBQUssQ0FBQ2hGLElBQU4sQ0FBV3VGLEtBQVgsQ0FBTCxFQUF3QjtBQUN0QixXQUFPLEtBQVA7QUFDRDs7QUFDRCxTQUFPLElBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOztBQUNFOztBQUNBO0FBRU8sU0FBU0Msb0JBQVQsQ0FBOEI1SCxJQUE5QixFQUFvQztBQUN6QyxNQUFJNkgsS0FBSyxHQUFHLENBQVo7O0FBQ0EsTUFBSTdILElBQUksQ0FBQ0csTUFBTCxLQUFnQixFQUFwQixFQUF3QjtBQUN0QjBILFNBQUssR0FBR3ZILFFBQVEsQ0FBQ04sSUFBRCxDQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMNkgsU0FBSyxHQUFHdkgsUUFBUSxDQUFDTixJQUFELENBQVIsR0FBaUIsSUFBekI7QUFDRDs7QUFDRCxTQUFPLElBQUlPLElBQUosQ0FBU3NILEtBQVQsQ0FBUCxDQVB5QyxDQU9sQjtBQUN4QjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBQ1MsU0FBU0MscUJBQVQsQ0FBK0JDLFNBQS9CLEVBQTBDM0gsTUFBMUMsRUFBa0Q7QUFDdkQsTUFBSTJILFNBQVMsSUFBSUEsU0FBUyxDQUFDQyxRQUFWLEdBQXFCN0gsTUFBckIsSUFBK0IsRUFBaEQsRUFBb0Q7QUFDbEQsV0FBTzhILDhDQUFNLENBQUNMLG9CQUFvQixDQUFDRyxTQUFTLENBQUNDLFFBQVYsRUFBRCxDQUFyQixDQUFOLENBQW1ENUgsTUFBbkQsQ0FBMERBLE1BQTFELENBQVA7QUFDRDs7QUFDRCxTQUFPLEVBQVA7QUFDRDtBQUNEO0FBQ0Y7QUFDQTtBQUNBOztBQUNTLFNBQVM4SCxxQkFBVCxDQUErQjlILE1BQS9CLEVBQXVDO0FBQzVDLE1BQUlBLE1BQU0sSUFBSUEsTUFBTSxDQUFDRCxNQUFQLEdBQWdCLENBQTlCLEVBQWlDO0FBQy9CLFFBQUlnSSxTQUFTLEdBQUdGLDhDQUFNLENBQUM3SCxNQUFELENBQU4sQ0FDYmdJLE9BRGEsR0FFYkosUUFGYSxFQUFoQjtBQUdBLFdBQU9HLFNBQVMsQ0FBQ2hJLE1BQVYsR0FBbUIsRUFBbkIsR0FBd0JnSSxTQUFTLENBQUN2QixNQUFWLENBQWlCLENBQWpCLEVBQW9CLEVBQXBCLENBQXhCLEdBQWtEdUIsU0FBekQ7QUFDRDs7QUFDRCxTQUFPLEVBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOztBQUVTLFNBQVNFLGtCQUFULENBQTRCQyxHQUE1QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBQ3BDLE9BQUssQ0FBQ0MsSUFBSSxDQUFDQyxTQUFMLENBQWVpQyxHQUFHLENBQUNFLE9BQW5CLElBQTRCRCxRQUE1QixHQUFxQyxTQUF0QyxDQUFMOztBQUNuRCxNQUFJLENBQUNELEdBQUwsRUFBVTtBQUNSO0FBQ0Q7O0FBQ0QsTUFBSUcsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxVQUFyQixFQUFpQztBQUFHO0FBQ2xDLFFBQUk7QUFBQ3hDLFdBQUssQ0FBQyxJQUFELENBQUw7QUFDSCxVQUFNeUMsUUFBUSxHQUFHTixHQUFHLENBQUNFLE9BQXJCO0FBQ0EsVUFBSS9GLE1BQU0sR0FBRyxJQUFJZ0csTUFBTSxDQUFDL0YsVUFBWCxFQUFiO0FBQ0F5RCxXQUFLLENBQUMsZUFBYUMsSUFBSSxDQUFDQyxTQUFMLENBQWU1RCxNQUFmLENBQWQsQ0FBTCxDQUhFLENBSUY7O0FBQ0FBLFlBQU0sQ0FBQ29HLGlCQUFQLENBQXlCRCxRQUF6Qjs7QUFDQW5HLFlBQU0sQ0FBQ0UsTUFBUCxHQUFnQixVQUFVbUcsQ0FBVixFQUFhO0FBQzNCLFlBQU1ySCxNQUFNLEdBQUdxSCxDQUFDLENBQUNqRyxNQUFGLENBQVNwQixNQUF4QjtBQUNBLFlBQU1zSCxXQUFXLEdBQUcsMEJBQXBCO0FBRUEsWUFBTUMsSUFBSSxHQUFHLElBQUk3RCxJQUFKLENBQVMsQ0FBQzFELE1BQUQsQ0FBVCxFQUFtQjtBQUFFc0IsY0FBSSxFQUFFZ0c7QUFBUixTQUFuQixDQUFiLENBSjJCLENBSzNCO0FBQ0E7O0FBQ0EsWUFBSUUsV0FBVyxHQUFDVixRQUFRLEdBQUMsR0FBVCxHQUFhRCxHQUFHLENBQUNZLFFBQWpDO0FBQ0FULGNBQU0sQ0FBQ0MsU0FBUCxDQUFpQlMsZ0JBQWpCLENBQWtDSCxJQUFsQyxFQUF1Q0MsV0FBdkMsRUFSMkIsQ0FRNEI7QUFDeEQsT0FURDtBQVdELEtBakJELENBaUJFLE9BQU9ILENBQVAsRUFBVTtBQUNWTSxhQUFPLENBQUNDLEdBQVIsQ0FBWVAsQ0FBWjtBQUNEO0FBQ0YsR0FyQkQsTUFxQk87QUFBQztBQUNOLFFBQUlRLFVBQVUsR0FBSXJFLFVBQVUsQ0FBQ3NFLElBQVgsQ0FBZ0JqQixHQUFHLENBQUNFLE9BQXBCLENBQWxCO0FBQ0EsUUFBSVEsSUFBSSxHQUFHLElBQUk3RCxJQUFKLENBQVMsQ0FBQ21FLFVBQUQsQ0FBVCxFQUF1QjtBQUNoQ3ZHLFVBQUksc0JBRDRCLENBQ0w7O0FBREssS0FBdkIsQ0FBWDtBQUdBLFFBQUl5RyxHQUFHLEdBQUdmLE1BQU0sQ0FBQ2dCLEdBQVAsQ0FBV0MsZUFBWCxDQUEyQlYsSUFBM0IsQ0FBVjtBQUNBLFFBQUlXLElBQUksR0FBR25HLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixHQUF2QixDQUFYO0FBQ0FrRyxRQUFJLENBQUNDLEtBQUwsQ0FBV0MsT0FBWCxHQUFxQixNQUFyQjtBQUNBRixRQUFJLENBQUNHLElBQUwsR0FBWU4sR0FBWjtBQUNBRyxRQUFJLENBQUNJLFlBQUwsQ0FBa0IsVUFBbEIsRUFBOEJ4QixRQUE5QixFQVRLLENBU2tDOztBQUN2Qy9FLFlBQVEsQ0FBQ3dHLElBQVQsQ0FBY0MsV0FBZCxDQUEwQk4sSUFBMUI7QUFDQUEsUUFBSSxDQUFDTyxLQUFMO0FBQ0ExRyxZQUFRLENBQUN3RyxJQUFULENBQWNHLFdBQWQsQ0FBMEJSLElBQTFCLEVBWkssQ0FZMkI7O0FBQ2hDbEIsVUFBTSxDQUFDZ0IsR0FBUCxDQUFXVyxlQUFYLENBQTJCWixHQUEzQixFQWJLLENBYTJCO0FBQ2pDO0FBQ0Y7QUFFTSxTQUFTYSx1QkFBVCxDQUFpQ0MsTUFBakMsRUFBd0NDLFVBQXhDLEVBQW1EO0FBQ3hELE1BQUlDLE9BQU8sR0FBRUMsOERBQU0sQ0FBQ0MsSUFBUCxDQUFZQyxFQUFaLEdBQWlCLEdBQWpCLEdBQXVCRiw4REFBTSxDQUFDQyxJQUFQLENBQVlFLFlBQWhEOztBQUVBLFdBQVNsQixlQUFULENBQXlCbUIsTUFBekIsRUFBaUM7QUFDL0IsV0FBUXBDLE1BQU0sQ0FBQ2dCLEdBQVIsR0FBZWhCLE1BQU0sQ0FBQ2dCLEdBQVAsQ0FBV0MsZUFBWCxDQUEyQm1CLE1BQTNCLENBQWYsR0FBb0RwQyxNQUFNLENBQUNxQyxTQUFQLENBQWlCcEIsZUFBakIsQ0FBaUNtQixNQUFqQyxDQUEzRDtBQUNEOztBQUNELE1BQUlFLEdBQUcsR0FBRyxJQUFJQyxjQUFKLEVBQVY7QUFDQSxNQUFJQyxRQUFRLEdBQUcsSUFBSUMsUUFBSixFQUFmO0FBQ0FILEtBQUcsQ0FBQ0ksSUFBSixDQUFTLEtBQVQsRUFBZ0JYLE9BQU8sR0FBR0YsTUFBVixHQUFrQixHQUFsQixHQUF3QkMsVUFBVSxDQUFDYSxPQUFuRCxFQUEyRCxJQUEzRCxFQVJ3RCxDQVFXOztBQUNuRUwsS0FBRyxDQUFDTSxnQkFBSixDQUFxQixlQUFyQixFQUFzQyxZQUFZQyxvRUFBUSxFQUExRDtBQUNBUCxLQUFHLENBQUNRLFlBQUosR0FBbUIsTUFBbkI7O0FBQ0FSLEtBQUcsQ0FBQ3BJLE1BQUosR0FBYSxVQUFVbUcsQ0FBVixFQUFhO0FBQ3RCLFFBQUksS0FBSzBDLE1BQUwsSUFBZSxHQUFuQixFQUF3QjtBQUFDckYsV0FBSyxDQUFDLFlBQVVDLElBQUksQ0FBQ0MsU0FBTCxDQUFlMEUsR0FBRyxDQUFDVSxRQUFuQixDQUFYLENBQUw7QUFDckIsVUFBSXpDLElBQUksR0FBRytCLEdBQUcsQ0FBQ1UsUUFBZjtBQUNBLFVBQUlDLFFBQVEsR0FBR25CLFVBQVUsQ0FBQ2hDLFFBQVgsR0FBb0IsR0FBcEIsR0FBd0JnQyxVQUFVLENBQUNyQixRQUFsRCxDQUZvQixDQUdwQjs7QUFDQyxVQUFJVCxNQUFNLENBQUNDLFNBQVAsQ0FBaUJTLGdCQUFyQixFQUF1QztBQUNwQ1QsaUJBQVMsQ0FBQ0MsVUFBVixDQUFxQkssSUFBckIsRUFBMEIwQyxRQUExQjtBQUNILE9BRkEsTUFFTTtBQUNMLFlBQUlySyxDQUFDLEdBQUdtQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsR0FBdkIsQ0FBUjtBQUNELFlBQUkrRixHQUFHLEdBQUdFLGVBQWUsQ0FBQ1YsSUFBRCxDQUF6QjtBQUNBM0gsU0FBQyxDQUFDeUksSUFBRixHQUFTTixHQUFUO0FBQ0FuSSxTQUFDLENBQUNzSyxRQUFGLEdBQWFELFFBQWI7QUFDQWxJLGdCQUFRLENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI1SSxDQUExQjtBQUNBQSxTQUFDLENBQUM2SSxLQUFGO0FBQ0F6QixjQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJaLEdBQTNCO0FBQ0E7QUFDSjtBQUNKLEdBakJEOztBQWtCQXVCLEtBQUcsQ0FBQ2EsSUFBSixDQUFTWCxRQUFUO0FBQ0Q7QUFFTSxTQUFTWSxZQUFULENBQXNCdkQsR0FBdEIsRUFBMkJDLFFBQTNCLEVBQXFDO0FBQzFDLE1BQUksQ0FBQ0QsR0FBTCxFQUFVO0FBQ1I7QUFDRDs7QUFDRyxnRkFBZ0N3RCxJQUFoQyxDQUFxQyxVQUFDQyxLQUFELEVBQVc7QUFDOUNDLHNEQUFTLENBQUNDLE1BQVYsQ0FBaUIsSUFBSTlHLElBQUosQ0FBUyxDQUFDbUQsR0FBRCxDQUFULEVBQWdCO0FBQy9CO0FBQ0F2RixVQUFJLEVBQUU7QUFGeUIsS0FBaEIsQ0FBakIsRUFHSXdGLFFBSEo7QUFJRCxHQUxEO0FBTUw7QUFHTSxTQUFTMkQsY0FBVCxDQUF3QjVELEdBQXhCLEVBQTZCQyxRQUE3QixFQUF1QztBQUMxQyxNQUFJLENBQUNELEdBQUwsRUFBVTtBQUNSO0FBQ0Q7O0FBQ0QsTUFBSUcsTUFBTSxDQUFDQyxTQUFQLENBQWlCQyxVQUFyQixFQUFpQztBQUFHO0FBQ2xDLFFBQUk7QUFBQ3hDLFdBQUssQ0FBQyxJQUFELENBQUwsQ0FBRCxDQUNGO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxvRkFBZ0MyRixJQUFoQyxDQUFxQyxVQUFDQyxLQUFELEVBQVc7QUFDOUM7QUFDQTtBQUNBQywwREFBUyxDQUFDQyxNQUFWLENBQWlCLElBQUk5RyxJQUFKLENBQVMsQ0FBQ21ELEdBQUQsQ0FBVCxFQUFnQjtBQUMvQjtBQUNBdkYsY0FBSSxFQUFFO0FBRnlCLFNBQWhCLENBQWpCLEVBR0l3RixRQUhKO0FBSUQsT0FQRCxFQWZFLENBeUJGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNELEtBbENELENBa0NFLE9BQU9PLENBQVAsRUFBVTtBQUNWTSxhQUFPLENBQUNDLEdBQVIsQ0FBWVAsQ0FBWjtBQUNEO0FBQ0YsR0F0Q0QsTUFzQ087QUFBQztBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDRTtBQUNBLFFBQUlxRCxXQUFXLEdBQUcsSUFBSUMsV0FBSixDQUFnQjlELEdBQUcsQ0FBQ0UsT0FBSixDQUFZckksTUFBNUIsQ0FBbEIsQ0FSRyxDQVFtRDs7QUFDdEQsUUFBSWtNLFNBQVMsR0FBRyxJQUFJcEgsVUFBSixDQUFla0gsV0FBZixDQUFoQixDQVRHLENBU3lDO0FBRTdDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUFoRyxTQUFLLENBQUMsYUFBV0MsSUFBSSxDQUFDQyxTQUFMLENBQWVnRyxTQUFmLENBQVosQ0FBTDtBQUNBLFFBQUlyRCxJQUFJLEdBQUcsSUFBSTdELElBQUosQ0FBU2tILFNBQVQsRUFBb0I7QUFDNUI7QUFDQXRKLFVBQUksRUFBRSwwQkFGc0IsQ0FFSztBQUNqQzs7QUFINEIsS0FBcEIsQ0FBWDtBQUtBLFFBQUlrRyxXQUFXLEdBQUNWLFFBQVEsR0FBQyxHQUFULEdBQWFELEdBQUcsQ0FBQ1ksUUFBakM7QUFDQSxRQUFJTSxHQUFHLEdBQUdmLE1BQU0sQ0FBQ2dCLEdBQVAsQ0FBV0MsZUFBWCxDQUEyQlYsSUFBM0IsQ0FBVjtBQUNBLFFBQUlXLElBQUksR0FBR25HLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixHQUF2QixDQUFYO0FBQ0FrRyxRQUFJLENBQUNDLEtBQUwsQ0FBV0MsT0FBWCxHQUFxQixNQUFyQjtBQUNBRixRQUFJLENBQUNHLElBQUwsR0FBWU4sR0FBWjtBQUNBRyxRQUFJLENBQUNJLFlBQUwsQ0FBa0IsVUFBbEIsRUFBOEJkLFdBQTlCLEVBNUJLLENBNEJxQzs7QUFDMUN6RixZQUFRLENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEJOLElBQTFCO0FBQ0FBLFFBQUksQ0FBQ08sS0FBTDtBQUNBMUcsWUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCUixJQUExQixFQS9CSyxDQStCMkI7O0FBQ2hDbEIsVUFBTSxDQUFDZ0IsR0FBUCxDQUFXVyxlQUFYLENBQTJCWixHQUEzQixFQWhDSyxDQWdDMkI7QUFDakM7QUFDSjtBQUdDOztBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7O0FBQ1MsU0FBUzhDLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCYixRQUE3QixFQUF1QztBQUFDO0FBQzdDLE1BQUljLFNBQVMsR0FBR0QsSUFBSSxDQUFDakcsT0FBTCxDQUFhLE1BQWIsQ0FBaEI7O0FBQ0EsTUFBSWtHLFNBQVMsS0FBSyxDQUFsQixFQUFxQjtBQUFDckcsU0FBSyxDQUFDLElBQUQsQ0FBTDtBQUNwQixRQUFNc0csS0FBSyxHQUFHLElBQUl4SixLQUFKLEVBQWQsQ0FEbUIsQ0FFbkI7O0FBQ0F3SixTQUFLLENBQUMxQyxZQUFOLENBQW1CLGFBQW5CLEVBQWtDLFdBQWxDOztBQUNBMEMsU0FBSyxDQUFDOUosTUFBTixHQUFlLFlBQVc7QUFDeEIsVUFBTVksTUFBTSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsUUFBdkIsQ0FBZjtBQUNBRixZQUFNLENBQUNKLEtBQVAsR0FBZXNKLEtBQUssQ0FBQ3RKLEtBQXJCO0FBQ0FJLFlBQU0sQ0FBQ0gsTUFBUCxHQUFnQnFKLEtBQUssQ0FBQ3JKLE1BQXRCO0FBQ0EsVUFBTXNKLE9BQU8sR0FBR25KLE1BQU0sQ0FBQ0ksVUFBUCxDQUFrQixJQUFsQixDQUFoQjtBQUNBK0ksYUFBTyxDQUFDdEksU0FBUixDQUFrQnFJLEtBQWxCLEVBQXlCLENBQXpCLEVBQTRCLENBQTVCLEVBQStCQSxLQUFLLENBQUN0SixLQUFyQyxFQUE0Q3NKLEtBQUssQ0FBQ3JKLE1BQWxEO0FBQ0EsVUFBTXVKLE9BQU8sR0FBR3BKLE1BQU0sQ0FBQ2UsU0FBUCxDQUFpQixXQUFqQixDQUFoQixDQU53QixDQU94Qjs7QUFDQSxVQUFNakQsQ0FBQyxHQUFHbUMsUUFBUSxDQUFDQyxhQUFULENBQXVCLEdBQXZCLENBQVYsQ0FSd0IsQ0FTeEI7O0FBQ0EsVUFBTWIsS0FBSyxHQUFHLElBQUlnSyxVQUFKLENBQWUsT0FBZixDQUFkLENBVndCLENBV3hCOztBQUNBdkwsT0FBQyxDQUFDc0ssUUFBRixHQUFhRCxRQUFRLElBQUksSUFBekIsQ0Fad0IsQ0FheEI7O0FBQ0EsVUFBSTFDLElBQUksR0FBRzZELGFBQWEsQ0FBQ0YsT0FBRCxDQUF4QjtBQUNBdEwsT0FBQyxDQUFDeUksSUFBRixHQUFTTCxHQUFHLENBQUNDLGVBQUosQ0FBb0JWLElBQXBCLENBQVQsQ0Fmd0IsQ0FnQnhCOztBQUNBM0gsT0FBQyxDQUFDeUwsYUFBRixDQUFnQmxLLEtBQWhCO0FBQ0QsS0FsQkQ7O0FBbUJBNkosU0FBSyxDQUFDdkosR0FBTixHQUFZcUosSUFBWjtBQUNELEdBeEJELE1Bd0JPO0FBQUNwRyxTQUFLLENBQUMsVUFBRCxDQUFMLENBQUQsQ0FDTDs7QUFDQSxRQUFNOUUsQ0FBQyxHQUFHbUMsUUFBUSxDQUFDQyxhQUFULENBQXVCLEdBQXZCLENBQVYsQ0FGSyxDQUdMOztBQUNBLFFBQU1iLEtBQUssR0FBRyxJQUFJZ0ssVUFBSixDQUFlLE9BQWYsQ0FBZCxDQUpLLENBS0w7O0FBQ0F2TCxLQUFDLENBQUNzSyxRQUFGLEdBQWFELFFBQVEsSUFBSSxJQUF6QixDQU5LLENBT0w7QUFDQTs7QUFDQXJLLEtBQUMsQ0FBQ3lJLElBQUYsR0FBU3lDLElBQVQsQ0FUSyxDQVVMOztBQUNBbEwsS0FBQyxDQUFDeUwsYUFBRixDQUFnQmxLLEtBQWhCO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTs7QUFDTyxTQUFTbUssYUFBVCxDQUF1QlIsSUFBdkIsRUFBNkI7QUFDbEMsTUFBSWxMLENBQUMsR0FBR21DLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixHQUF2QixDQUFSO0FBQ0FwQyxHQUFDLENBQUN5SSxJQUFGLEdBQVN5QyxJQUFJLENBQUNwSyxJQUFkO0FBQ0FkLEdBQUMsQ0FBQ3NLLFFBQUYsR0FBYVksSUFBSSxDQUFDOUYsSUFBTCxHQUFZOEYsSUFBSSxDQUFDOUYsSUFBakIsR0FBd0IsSUFBckM7QUFDQXBGLEdBQUMsQ0FBQ3dCLE1BQUYsR0FBVyxRQUFYO0FBQ0FXLFVBQVEsQ0FBQ3dHLElBQVQsQ0FBY0MsV0FBZCxDQUEwQjVJLENBQTFCO0FBQ0FBLEdBQUMsQ0FBQzZJLEtBQUY7QUFDQTFHLFVBQVEsQ0FBQ3dHLElBQVQsQ0FBY0csV0FBZCxDQUEwQjlJLENBQTFCO0FBQ0Q7QUFHUSxTQUFTd0wsYUFBVCxDQUF1QkcsT0FBdkIsRUFBZ0M7QUFDckM7QUFDQSxNQUFJdkksR0FBRyxHQUFHdUksT0FBTyxDQUFDdEksS0FBUixDQUFjLEdBQWQsQ0FBVjtBQUFBLE1BQ0VDLElBQUksR0FBR0YsR0FBRyxDQUFDLENBQUQsQ0FBSCxDQUFPRyxLQUFQLENBQWEsU0FBYixFQUF3QixDQUF4QixDQURUO0FBQUEsTUFFRUMsSUFBSSxHQUFHQyxJQUFJLENBQUNMLEdBQUcsQ0FBQyxDQUFELENBQUosQ0FGYjtBQUFBLE1BR0VNLENBQUMsR0FBR0YsSUFBSSxDQUFDMUUsTUFIWDtBQUFBLE1BSUU2RSxLQUFLLEdBQUcsSUFBSUMsVUFBSixDQUFlRixDQUFmLENBSlY7O0FBS0EsU0FBT0EsQ0FBQyxFQUFSLEVBQVk7QUFDVkMsU0FBSyxDQUFDRCxDQUFELENBQUwsR0FBV0YsSUFBSSxDQUFDSyxVQUFMLENBQWdCSCxDQUFoQixDQUFYO0FBQ0Q7O0FBQ0QsU0FBTyxJQUFJSSxJQUFKLENBQVMsQ0FBQ0gsS0FBRCxDQUFULEVBQWtCO0FBQ3ZCakMsUUFBSSxFQUFFNEI7QUFEaUIsR0FBbEIsQ0FBUDtBQUdEO0FBRU0sU0FBU3NJLGNBQVQsQ0FBd0JqSyxHQUF4QixFQUE2QjtBQUNsQyxNQUFJTyxNQUFNLEdBQUdDLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixRQUF2QixDQUFiO0FBQ0FGLFFBQU0sQ0FBQ0osS0FBUCxHQUFlSCxHQUFHLENBQUNHLEtBQW5CO0FBQ0FJLFFBQU0sQ0FBQ0gsTUFBUCxHQUFnQkosR0FBRyxDQUFDSSxNQUFwQjtBQUNBLE1BQUlNLEdBQUcsR0FBR0gsTUFBTSxDQUFDSSxVQUFQLENBQWtCLElBQWxCLENBQVY7QUFDQUQsS0FBRyxDQUFDVSxTQUFKLENBQWNwQixHQUFkLEVBQW1CLENBQW5CLEVBQXNCLENBQXRCLEVBQXlCQSxHQUFHLENBQUNHLEtBQTdCLEVBQW9DSCxHQUFHLENBQUNJLE1BQXhDO0FBQ0EsTUFBSXVELEdBQUcsR0FBRzNELEdBQUcsQ0FBQ0UsR0FBSixDQUFRZ0ssU0FBUixDQUFrQmxLLEdBQUcsQ0FBQ0UsR0FBSixDQUFRd0QsV0FBUixDQUFvQixHQUFwQixJQUEyQixDQUE3QyxFQUFnRHlHLFdBQWhELEVBQVY7QUFDQSxNQUFJUixPQUFPLEdBQUdwSixNQUFNLENBQUNlLFNBQVAsQ0FBaUIsV0FBV3FDLEdBQTVCLENBQWQ7QUFDQSxTQUFPZ0csT0FBUDtBQUNELEMsQ0FFRDs7QUFDTyxTQUFTUyxJQUFULEdBQWdCO0FBQ3JCLFdBQVNDLEVBQVQsR0FBYztBQUNaLFdBQU8sQ0FBRSxDQUFDLElBQUlyTCxJQUFJLENBQUNzTCxNQUFMLEVBQUwsSUFBc0IsT0FBdkIsR0FBa0MsQ0FBbkMsRUFBc0N0RixRQUF0QyxDQUErQyxFQUEvQyxFQUFtRGtGLFNBQW5ELENBQTZELENBQTdELENBQVA7QUFDRDs7QUFDRCxTQUFRRyxFQUFFLEtBQUtBLEVBQUUsRUFBVCxHQUFjQSxFQUFFLEVBQWhCLEdBQXFCQSxFQUFFLEVBQXZCLEdBQTRCQSxFQUFFLEVBQTlCLEdBQW1DQSxFQUFFLEVBQXJDLEdBQTBDQSxFQUFFLEVBQTVDLEdBQWlEQSxFQUFFLEVBQTNEO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7QUFDUyxTQUFTRSxXQUFULENBQXFCQyxHQUFyQixFQUEwQjtBQUMvQixNQUFJLENBQUNBLEdBQUwsRUFBVSxPQUFPLE1BQVA7QUFDVixNQUFNdk0sQ0FBQyxHQUFHZSxJQUFJLENBQUN5TCxLQUFMLENBQVdELEdBQVgsQ0FBVjtBQUNBLE1BQU0zTSxDQUFDLEdBQUcyTSxHQUFHLENBQUM5SSxLQUFKLENBQVUsR0FBVixFQUFlLENBQWYsS0FBcUIsSUFBL0I7QUFDQSxTQUFPekQsQ0FBQyxDQUFDeU0sY0FBRixDQUFpQixPQUFqQixJQUE0QixHQUE1QixHQUFrQzdNLENBQXpDO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7O0FBQ1MsU0FBUzhNLHdCQUFULENBQWtDckYsR0FBbEMsRUFBdUM7QUFDNUMsTUFBSUMsUUFBUSxHQUFHRCxHQUFHLENBQUNzRixPQUFKLENBQVkscUJBQVosRUFBbUNsSixLQUFuQyxDQUF5QyxXQUF6QyxFQUFzRCxDQUF0RCxDQUFmOztBQUNBLE1BQUksQ0FBQzZELFFBQUwsRUFBZTtBQUNiQSxZQUFRLEdBQUdELEdBQUcsQ0FBQ3NGLE9BQUosQ0FBWSxxQkFBWixFQUFtQ2xKLEtBQW5DLENBQXlDLFdBQXpDLEVBQXNELENBQXRELENBQVg7QUFDRDs7QUFDRDZELFVBQVEsR0FBR0EsUUFBUSxHQUFHQSxRQUFRLENBQUMvRyxPQUFULENBQWlCLEtBQWpCLEVBQXdCLEVBQXhCLENBQUgsR0FBaUMsV0FBcEQ7QUFDQStHLFVBQVEsR0FBR3NGLFNBQVMsQ0FBQ3RGLFFBQUQsQ0FBVCxJQUF1QixFQUFsQztBQUNBdUYsd0JBQXNCLENBQUN4RixHQUFHLENBQUNpRSxJQUFMLEVBQVdoRSxRQUFYLEVBQXFCLHdDQUFyQixDQUF0QjtBQUNEO0FBRU0sU0FBU3VGLHNCQUFULENBQWdDdkIsSUFBaEMsRUFBc0M5RixJQUF0QyxFQUE0QzFELElBQTVDLEVBQWtEO0FBQ3ZELE1BQUlpRyxJQUFJLEdBQUcsSUFBSTdELElBQUosQ0FBUyxDQUFDb0gsSUFBRCxDQUFULEVBQWlCO0FBQzFCeEosUUFBSSxFQUFFQSxJQUFJLElBQUk7QUFEWSxHQUFqQixDQUFYO0FBR0EsTUFBSWdMLGVBQWUsR0FBR3ZLLFFBQVEsQ0FBQ0MsYUFBVCxDQUF1QixHQUF2QixDQUF0QjtBQUNBLE1BQUlxRyxJQUFJLEdBQUdyQixNQUFNLENBQUNnQixHQUFQLENBQVdDLGVBQVgsQ0FBMkJWLElBQTNCLENBQVgsQ0FMdUQsQ0FLWDs7QUFDNUMrRSxpQkFBZSxDQUFDakUsSUFBaEIsR0FBdUJBLElBQXZCO0FBQ0FpRSxpQkFBZSxDQUFDcEMsUUFBaEIsR0FBMkJsRixJQUEzQixDQVB1RCxDQU92Qjs7QUFDaENqRCxVQUFRLENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},aa2e:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL2Fzc2VtYmx5Q2ZnL2RldGFpbC52dWU/YmEyMyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJhYTJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///aa2e\n")},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-b83932fc.b52aee7c.js b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-b83932fc.b52aee7c.js index aebcdd1..7f91e94 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-b83932fc.b52aee7c.js +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-b83932fc.b52aee7c.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-b83932fc","chunk-607f726c"],{"0382":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmMachineIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmMachineSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmMachineRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmMachineUpdate; });\n/* unused harmony export crmMachineDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Machine;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs;\n/*axios*/\n\nfunction crmMachineIndex(data) {\n //获取列表数据\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/machine/list\',data)\n}\nfunction crmMachineSave(data) {\n //新增\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/machine\',data)\n}\nfunction crmMachineRead(id) {\n //根据id获取单条数据\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/machine/\'+id)\n}\nfunction crmMachineUpdate(id, data) {\n //更新\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/machine/\'+id,data)\n}\nfunction crmMachineDelete(data) {\n //删除\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/machine/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL21hY2hpbmUvbWFjaGluZS5qcz8wMzgyIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiTWFjaGluZSIsImZ1bmNzIiwiY3JtTWFjaGluZUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybU1hY2hpbmVTYXZlIiwiY3JtTWFjaGluZVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybU1hY2hpbmVVcGRhdGUiLCJwdXRzIiwiY3JtTWFjaGluZURlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLE9BQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QjtBQUdBOztBQUNPLFNBQVNDLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQUM7QUFDckMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURvQyxDQUVwQztBQUNEO0FBQ00sU0FBU0ksY0FBVCxDQUF3QkosSUFBeEIsRUFBOEI7QUFBQztBQUNwQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURtQyxDQUVuQztBQUNEO0FBQ00sU0FBU0ssY0FBVCxDQUF3QkMsRUFBeEIsRUFBNEI7QUFBQztBQUNsQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURpQyxDQUVqQztBQUNEO0FBQ00sU0FBU0csZ0JBQVQsQ0FBMEJILEVBQTFCLEVBQTZCTixJQUE3QixFQUFtQztBQUFDO0FBQ3pDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUR3QyxDQUV4QztBQUNEO0FBQ00sU0FBU1csZ0JBQVQsQ0FBMEJYLElBQTFCLEVBQWdDO0FBQUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURxQyxDQUVyQztBQUNEIiwiZmlsZSI6IjAzODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLk1hY2hpbmU7XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcblxyXG4vKmF4aW9zKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU1hY2hpbmVJbmRleChkYXRhKSB7Ly/ojrflj5bliJfooajmlbDmja5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkxpc3RGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS9saXN0JyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1NYWNoaW5lU2F2ZShkYXRhKSB7Ly/mlrDlop5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZScsZGF0YSlcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTWFjaGluZVJlYWQoaWQpIHsvL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS8nK2lkKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1NYWNoaW5lVXBkYXRlKGlkLGRhdGEpIHsvL+abtOaWsFxyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS8nK2lkLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU1hY2hpbmVEZWxldGUoZGF0YSkgey8v5Yig6ZmkXHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0382\n')},"0563":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemTransTypeInventoryRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemTransTypeInventoryRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemTransTypeInventoryRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemTransTypeInventoryRouteUpdate; });\n/* unused harmony export crmItemTransTypeInventoryRouteDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemTransTypeInventoryRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route/list\', data);\n} // 创建\n\nfunction crmItemTransTypeInventoryRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route\', data);\n} // 根据id获取\n\nfunction crmItemTransTypeInventoryRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item-transtype-inventory-route/\' + id);\n} // 根据id修改\n\nfunction crmItemTransTypeInventoryRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item-transtype-inventory-route/\' + id, data);\n} // 删除\n\nfunction crmItemTransTypeInventoryRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZS9pdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGUuanM/MDU2MyJdLCJuYW1lcyI6WyJjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVRyYW5zVHlwZUludmVudG9yeVJvdXRlU2F2ZSIsImNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZVJlYWQiLCJpZCIsImdldHMiLCJjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVVcGRhdGUiLCJwdXRzIiwiY3JtSXRlbVRyYW5zVHlwZUludmVudG9yeVJvdXRlRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxtQ0FBVCxDQUE2Q0MsSUFBN0MsRUFBbUQ7QUFDeEQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1EQUFaLEVBQWdFRixJQUFoRSxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGtDQUFULENBQTRDSCxJQUE1QyxFQUFrRDtBQUN2RCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOENBQVosRUFBMkRGLElBQTNELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksa0NBQVQsQ0FBNENDLEVBQTVDLEVBQWdEO0FBQ3JELFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxrREFBZ0RELEVBQTNELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0Usb0NBQVQsQ0FBOENGLEVBQTlDLEVBQWlETCxJQUFqRCxFQUF1RDtBQUM1RCxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsa0RBQWdESCxFQUEzRCxFQUE4REwsSUFBOUQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxvQ0FBVCxDQUE4Q1QsSUFBOUMsRUFBb0Q7QUFDekQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHFEQUFaLEVBQWtFRixJQUFsRSxDQUFQO0FBQ0QiLCJmaWxlIjoiMDU2My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlLycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnN0eXBlLWludmVudG9yeS1yb3V0ZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0563\n')},"09f4":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return scrollTo; });\nMath.easeInOutQuad = function (t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n}; // requestAnimationFrame for Smart Animating http://goo.gl/sx5sts\n\n\nvar requestAnimFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n}();\n/**\r\n * Because it's so fucking difficult to detect the scrolling element, just move them all\r\n * @param {number} amount\r\n */\n\n\nfunction move(amount) {\n document.documentElement.scrollTop = amount;\n document.body.parentNode.scrollTop = amount;\n document.body.scrollTop = amount;\n}\n\nfunction position() {\n return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop;\n}\n/**\r\n * @param {number} to\r\n * @param {number} duration\r\n * @param {Function} callback\r\n */\n\n\nfunction scrollTo(to, duration, callback) {\n var start = position();\n var change = to - start;\n var increment = 20;\n var currentTime = 0;\n duration = typeof duration === 'undefined' ? 500 : duration;\n\n var animateScroll = function animateScroll() {\n // increment the time\n currentTime += increment; // find the value with the quadratic in-out easing function\n\n var val = Math.easeInOutQuad(currentTime, start, change, duration); // move the document.body\n\n move(val); // do the animation unless its over\n\n if (currentTime < duration) {\n requestAnimFrame(animateScroll);\n } else {\n if (callback && typeof callback === 'function') {\n // the animation is done so lets callback\n callback();\n }\n }\n };\n\n animateScroll();\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvc2Nyb2xsLXRvLmpzPzA5ZjQiXSwibmFtZXMiOlsiTWF0aCIsImVhc2VJbk91dFF1YWQiLCJ0IiwiYiIsImMiLCJkIiwicmVxdWVzdEFuaW1GcmFtZSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbGxiYWNrIiwic2V0VGltZW91dCIsIm1vdmUiLCJhbW91bnQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsImJvZHkiLCJwYXJlbnROb2RlIiwicG9zaXRpb24iLCJzY3JvbGxUbyIsInRvIiwiZHVyYXRpb24iLCJzdGFydCIsImNoYW5nZSIsImluY3JlbWVudCIsImN1cnJlbnRUaW1lIiwiYW5pbWF0ZVNjcm9sbCIsInZhbCJdLCJtYXBwaW5ncyI6IkFBQUFBO0FBQUFBLElBQUksQ0FBQ0MsYUFBTCxHQUFxQixVQUFTQyxDQUFULEVBQVlDLENBQVosRUFBZUMsQ0FBZixFQUFrQkMsQ0FBbEIsRUFBcUI7QUFDeENILEdBQUMsSUFBSUcsQ0FBQyxHQUFHLENBQVQ7O0FBQ0EsTUFBSUgsQ0FBQyxHQUFHLENBQVIsRUFBVztBQUNULFdBQU9FLENBQUMsR0FBRyxDQUFKLEdBQVFGLENBQVIsR0FBWUEsQ0FBWixHQUFnQkMsQ0FBdkI7QUFDRDs7QUFDREQsR0FBQztBQUNELFNBQU8sQ0FBQ0UsQ0FBRCxHQUFLLENBQUwsSUFBVUYsQ0FBQyxJQUFJQSxDQUFDLEdBQUcsQ0FBUixDQUFELEdBQWMsQ0FBeEIsSUFBNkJDLENBQXBDO0FBQ0QsQ0FQRCxDLENBU0E7OztBQUNBLElBQUlHLGdCQUFnQixHQUFJLFlBQVc7QUFDakMsU0FBT0MsTUFBTSxDQUFDQyxxQkFBUCxJQUFnQ0QsTUFBTSxDQUFDRSwyQkFBdkMsSUFBc0VGLE1BQU0sQ0FBQ0csd0JBQTdFLElBQXlHLFVBQVNDLFFBQVQsRUFBbUI7QUFBRUosVUFBTSxDQUFDSyxVQUFQLENBQWtCRCxRQUFsQixFQUE0QixPQUFPLEVBQW5DO0FBQXdDLEdBQTdLO0FBQ0QsQ0FGc0IsRUFBdkI7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsU0FBU0UsSUFBVCxDQUFjQyxNQUFkLEVBQXNCO0FBQ3BCQyxVQUFRLENBQUNDLGVBQVQsQ0FBeUJDLFNBQXpCLEdBQXFDSCxNQUFyQztBQUNBQyxVQUFRLENBQUNHLElBQVQsQ0FBY0MsVUFBZCxDQUF5QkYsU0FBekIsR0FBcUNILE1BQXJDO0FBQ0FDLFVBQVEsQ0FBQ0csSUFBVCxDQUFjRCxTQUFkLEdBQTBCSCxNQUExQjtBQUNEOztBQUVELFNBQVNNLFFBQVQsR0FBb0I7QUFDbEIsU0FBT0wsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxTQUF6QixJQUFzQ0YsUUFBUSxDQUFDRyxJQUFULENBQWNDLFVBQWQsQ0FBeUJGLFNBQS9ELElBQTRFRixRQUFRLENBQUNHLElBQVQsQ0FBY0QsU0FBakc7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFNBQVNJLFFBQVQsQ0FBa0JDLEVBQWxCLEVBQXNCQyxRQUF0QixFQUFnQ1osUUFBaEMsRUFBMEM7QUFDL0MsTUFBTWEsS0FBSyxHQUFHSixRQUFRLEVBQXRCO0FBQ0EsTUFBTUssTUFBTSxHQUFHSCxFQUFFLEdBQUdFLEtBQXBCO0FBQ0EsTUFBTUUsU0FBUyxHQUFHLEVBQWxCO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ0FKLFVBQVEsR0FBSSxPQUFRQSxRQUFSLEtBQXNCLFdBQXZCLEdBQXNDLEdBQXRDLEdBQTRDQSxRQUF2RDs7QUFDQSxNQUFJSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLEdBQVc7QUFDN0I7QUFDQUQsZUFBVyxJQUFJRCxTQUFmLENBRjZCLENBRzdCOztBQUNBLFFBQUlHLEdBQUcsR0FBRzdCLElBQUksQ0FBQ0MsYUFBTCxDQUFtQjBCLFdBQW5CLEVBQWdDSCxLQUFoQyxFQUF1Q0MsTUFBdkMsRUFBK0NGLFFBQS9DLENBQVYsQ0FKNkIsQ0FLN0I7O0FBQ0FWLFFBQUksQ0FBQ2dCLEdBQUQsQ0FBSixDQU42QixDQU83Qjs7QUFDQSxRQUFJRixXQUFXLEdBQUdKLFFBQWxCLEVBQTRCO0FBQzFCakIsc0JBQWdCLENBQUNzQixhQUFELENBQWhCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSWpCLFFBQVEsSUFBSSxPQUFRQSxRQUFSLEtBQXNCLFVBQXRDLEVBQWtEO0FBQ2hEO0FBQ0FBLGdCQUFRO0FBQ1Q7QUFDRjtBQUNGLEdBaEJEOztBQWlCQWlCLGVBQWE7QUFDZCIsImZpbGUiOiIwOWY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiTWF0aC5lYXNlSW5PdXRRdWFkID0gZnVuY3Rpb24odCwgYiwgYywgZCkge1xyXG4gIHQgLz0gZCAvIDJcclxuICBpZiAodCA8IDEpIHtcclxuICAgIHJldHVybiBjIC8gMiAqIHQgKiB0ICsgYlxyXG4gIH1cclxuICB0LS1cclxuICByZXR1cm4gLWMgLyAyICogKHQgKiAodCAtIDIpIC0gMSkgKyBiXHJcbn1cclxuXHJcbi8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3IgU21hcnQgQW5pbWF0aW5nIGh0dHA6Ly9nb28uZ2wvc3g1c3RzXHJcbnZhciByZXF1ZXN0QW5pbUZyYW1lID0gKGZ1bmN0aW9uKCkge1xyXG4gIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwgd2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fCBmdW5jdGlvbihjYWxsYmFjaykgeyB3aW5kb3cuc2V0VGltZW91dChjYWxsYmFjaywgMTAwMCAvIDYwKSB9XHJcbn0pKClcclxuXHJcbi8qKlxyXG4gKiBCZWNhdXNlIGl0J3Mgc28gZnVja2luZyBkaWZmaWN1bHQgdG8gZGV0ZWN0IHRoZSBzY3JvbGxpbmcgZWxlbWVudCwganVzdCBtb3ZlIHRoZW0gYWxsXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnRcclxuICovXHJcbmZ1bmN0aW9uIG1vdmUoYW1vdW50KSB7XHJcbiAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IGFtb3VudFxyXG4gIGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxUb3AgPSBhbW91bnRcclxuICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IGFtb3VudFxyXG59XHJcblxyXG5mdW5jdGlvbiBwb3NpdGlvbigpIHtcclxuICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdG9cclxuICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsVG8odG8sIGR1cmF0aW9uLCBjYWxsYmFjaykge1xyXG4gIGNvbnN0IHN0YXJ0ID0gcG9zaXRpb24oKVxyXG4gIGNvbnN0IGNoYW5nZSA9IHRvIC0gc3RhcnRcclxuICBjb25zdCBpbmNyZW1lbnQgPSAyMFxyXG4gIGxldCBjdXJyZW50VGltZSA9IDBcclxuICBkdXJhdGlvbiA9ICh0eXBlb2YgKGR1cmF0aW9uKSA9PT0gJ3VuZGVmaW5lZCcpID8gNTAwIDogZHVyYXRpb25cclxuICB2YXIgYW5pbWF0ZVNjcm9sbCA9IGZ1bmN0aW9uKCkge1xyXG4gICAgLy8gaW5jcmVtZW50IHRoZSB0aW1lXHJcbiAgICBjdXJyZW50VGltZSArPSBpbmNyZW1lbnRcclxuICAgIC8vIGZpbmQgdGhlIHZhbHVlIHdpdGggdGhlIHF1YWRyYXRpYyBpbi1vdXQgZWFzaW5nIGZ1bmN0aW9uXHJcbiAgICB2YXIgdmFsID0gTWF0aC5lYXNlSW5PdXRRdWFkKGN1cnJlbnRUaW1lLCBzdGFydCwgY2hhbmdlLCBkdXJhdGlvbilcclxuICAgIC8vIG1vdmUgdGhlIGRvY3VtZW50LmJvZHlcclxuICAgIG1vdmUodmFsKVxyXG4gICAgLy8gZG8gdGhlIGFuaW1hdGlvbiB1bmxlc3MgaXRzIG92ZXJcclxuICAgIGlmIChjdXJyZW50VGltZSA8IGR1cmF0aW9uKSB7XHJcbiAgICAgIHJlcXVlc3RBbmltRnJhbWUoYW5pbWF0ZVNjcm9sbClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjYWxsYmFjayAmJiB0eXBlb2YgKGNhbGxiYWNrKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIC8vIHRoZSBhbmltYXRpb24gaXMgZG9uZSBzbyBsZXRzIGNhbGxiYWNrXHJcbiAgICAgICAgY2FsbGJhY2soKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFuaW1hdGVTY3JvbGwoKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///09f4\n")},1375:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerBomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerBomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerBomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerBomUpdate; });\n/* unused harmony export crmCustomerBomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCustomerBomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom/list\', data);\n} // 创建\n\nfunction crmCustomerBomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom\', data);\n} // 根据id获取\n\nfunction crmCustomerBomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer-bom/\' + id);\n} // 根据id修改\n\nfunction crmCustomerBomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer-bom/\' + id, data);\n} // 删除\n\nfunction crmCustomerBomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVyQm9tL2N1c3RvbWVyQm9tLmpzPzEzNzUiXSwibmFtZXMiOlsiY3JtQ3VzdG9tZXJCb21JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VzdG9tZXJCb21TYXZlIiwiY3JtQ3VzdG9tZXJCb21SZWFkIiwiaWQiLCJnZXRzIiwiY3JtQ3VzdG9tZXJCb21VcGRhdGUiLCJwdXRzIiwiY3JtQ3VzdG9tZXJCb21EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksaUNBQVosRUFBOENGLElBQTlDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csa0JBQVQsQ0FBNEJILElBQTVCLEVBQWtDO0FBQ3ZDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSw0QkFBWixFQUF5Q0YsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxrQkFBVCxDQUE0QkMsRUFBNUIsRUFBZ0M7QUFDckMsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLGdDQUE4QkQsRUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxvQkFBVCxDQUE4QkYsRUFBOUIsRUFBaUNMLElBQWpDLEVBQXVDO0FBQzVDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyxnQ0FBOEJILEVBQXpDLEVBQTRDTCxJQUE1QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLG9CQUFULENBQThCVCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksbUNBQVosRUFBZ0RGLElBQWhELENBQVA7QUFDRCIsImZpbGUiOiIxMzc1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21TYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItYm9tJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckJvbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1ib20vJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckJvbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1375\n')},"1a29":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmShiftIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmShiftSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmShiftRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmShiftUpdate; });\n/* unused harmony export crmShiftDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Shift;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmShiftIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/shift/list\',data)\n} // 创建\n\nfunction crmShiftSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/shift\',data)\n} //根据id获取单条数据\n\nfunction crmShiftRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/shift/\'+id)\n} // 根据id修改\n\nfunction crmShiftUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/shift/\'+id,data)\n} // 删除\n\nfunction crmShiftDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/shift/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3NoaWZ0L3NoaWZ0LmpzPzFhMjkiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJTaGlmdCIsImZ1bmNzIiwiY3JtU2hpZnRJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiTGlzdEZ1bmMiLCJjcm1TaGlmdFNhdmUiLCJjcm1TaGlmdFJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVNoaWZ0VXBkYXRlIiwicHV0cyIsImNybVNoaWZ0RGVsZXRlIiwiRGVsZXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsTUFBTSxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxXQUFoQztBQUNBLElBQU1DLE9BQU8sR0FBQ04sMkNBQVMsQ0FBQ08sUUFBVixDQUFtQkMsS0FBakM7QUFDQSxJQUFNQyxLQUFLLEdBQUNULDJDQUFTLENBQUNTLEtBQXRCLEMsQ0FFQTs7QUFDTyxTQUFTQyxhQUFULENBQXVCQyxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNLLFFBQXJDLEVBQThDSCxJQUE5QyxDQUFQLENBRGtDLENBRWxDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFlBQVQsQ0FBc0JKLElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQXZCLEVBQStCSyxJQUEvQixDQUFQLENBRGlDLENBRWpDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNLLFlBQVQsQ0FBc0JDLEVBQXRCLEVBQTBCO0FBQy9CLFNBQU9MLDREQUFLLENBQUNNLElBQU4sQ0FBV25CLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxDQUFQLENBRCtCLENBRS9CO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILEVBQXhCLEVBQTJCTixJQUEzQixFQUFpQztBQUN0QyxTQUFPQyw0REFBSyxDQUFDUyxJQUFOLENBQVd0QixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsRUFBZ0ROLElBQWhELENBQVAsQ0FEc0MsQ0FFdEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1csY0FBVCxDQUF3QlgsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURtQyxDQUVuQztBQUNEIiwiZmlsZSI6IjFhMjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLlNoaWZ0O1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2hpZnRJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NoaWZ0L2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zaGlmdCcsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9zaGlmdC8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zaGlmdC8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdERlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc2hpZnQvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1a29\n')},"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},"247a":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCurrencyExchangeIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCurrencyExchangeSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCurrencyExchangeRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCurrencyExchangeUpdate; });\n/* unused harmony export crmCurrencyExchangeDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCurrencyExchangeIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange/list\', data);\n} // 创建\n\nfunction crmCurrencyExchangeSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange\', data);\n} // 根据id获取\n\nfunction crmCurrencyExchangeRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/currency-exchange/\' + id);\n} // 根据id修改\n\nfunction crmCurrencyExchangeUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/currency-exchange/\' + id, data);\n} // 删除\n\nfunction crmCurrencyExchangeDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1cnJlbmN5RXhjaGFuZ2UvY3VycmVuY3lFeGNoYW5nZS5qcz8yNDdhIl0sIm5hbWVzIjpbImNybUN1cnJlbmN5RXhjaGFuZ2VJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VycmVuY3lFeGNoYW5nZVNhdmUiLCJjcm1DdXJyZW5jeUV4Y2hhbmdlUmVhZCIsImlkIiwiZ2V0cyIsImNybUN1cnJlbmN5RXhjaGFuZ2VVcGRhdGUiLCJwdXRzIiwiY3JtQ3VycmVuY3lFeGNoYW5nZURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0Esd0JBQVQsQ0FBa0NDLElBQWxDLEVBQXdDO0FBQzdDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxzQ0FBWixFQUFtREYsSUFBbkQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyx1QkFBVCxDQUFpQ0gsSUFBakMsRUFBdUM7QUFDNUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGlDQUFaLEVBQThDRixJQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLHVCQUFULENBQWlDQyxFQUFqQyxFQUFxQztBQUMxQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcscUNBQW1DRCxFQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLHlCQUFULENBQW1DRixFQUFuQyxFQUFzQ0wsSUFBdEMsRUFBNEM7QUFDakQsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHFDQUFtQ0gsRUFBOUMsRUFBaURMLElBQWpELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MseUJBQVQsQ0FBbUNULElBQW5DLEVBQXlDO0FBQzlDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx3Q0FBWixFQUFxREYsSUFBckQsQ0FBUDtBQUNEIiwiZmlsZSI6IjI0N2EuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lFeGNoYW5nZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lFeGNoYW5nZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VycmVuY3ktZXhjaGFuZ2UvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///247a\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},"301a":function(module){eval('module.exports = JSON.parse("{\\"leads\\":{\\"id\\":\\"1\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"公司编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"公司名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"FullName\\",\\"name\\":\\"公司全称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"公司类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"主要产品\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PrimaryProduct\\",\\"setting\\":[]}]},\\"dicts\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"字典编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"字典名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"字典描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"transaction\\":{\\"id\\":\\"3\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"事务编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"事务名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"AllowedItemStatusList\\",\\"name\\":\\"允许的物品状态清单\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"AllowedInventoryStatusList\\",\\"name\\":\\"允许的库存状态清单\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"事务描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"strategy\\":{\\"id\\":\\"4\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"策略编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"策略名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Type\\",\\"name\\":\\"策略类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"策略描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"rule\\":{\\"id\\":\\"5\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"规则编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"规则名称\\",\\"minwidth\\":\\"35%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Value\\",\\"name\\":\\"规则值\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"规则描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"strategyRules\\":{\\"id\\":\\"6\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"StrategyName\\",\\"name\\":\\"策略名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"RuleName\\",\\"name\\":\\"规则名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Seq\\",\\"name\\":\\"顺序\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]}]},\\"verification\\":{\\"id\\":\\"7\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"验证编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"验证名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Type\\",\\"name\\":\\"验证类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Desc\\",\\"name\\":\\"验证描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"stage\\":{\\"id\\":\\"8\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"步骤编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"步骤名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"步骤描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"customer\\":{\\"id\\":\\"9\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"客户编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"客户名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Contact\\",\\"name\\":\\"联系人\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ContactPhone\\",\\"name\\":\\"联系电话\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"TaxRate\\",\\"name\\":\\"税率\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"CurrencyName\\",\\"name\\":\\"货币\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"CustomerType\\",\\"name\\":\\"客户类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"textarea\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"客户描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"slgItem\\":{\\"id\\":\\"10\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"SlgName\\",\\"name\\":\\"库位组\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ItemCode\\",\\"name\\":\\"物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"UomName\\",\\"name\\":\\"计量单位\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"int\\",\\"fieldName\\":\\"LocCapacity\\",\\"name\\":\\"库位容量\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Allowed\\",\\"name\\":\\"是否允许\\",\\"minwidth\\":\\"30%\\",\\"type\\":3},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3}]},\\"log\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"formType\\":\\"text\\",\\"fieldName\\":\\"leads_name\\",\\"name\\":\\"线索名称\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"telephone\\",\\"name\\":\\"电话\\",\\"setting\\":[]},{\\"formType\\":\\"mobile\\",\\"fieldName\\":\\"mobile\\",\\"name\\":\\"手机\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"address\\",\\"name\\":\\"地址\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"next_time\\",\\"name\\":\\"下次联系时间\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"remark\\",\\"name\\":\\"备注\\",\\"setting\\":[]},{\\"formType\\":\\"user\\",\\"fieldName\\":\\"owner_user_id\\",\\"name\\":\\"负责人\\",\\"setting\\":[]},{\\"formType\\":\\"user\\",\\"fieldName\\":\\"create_user_id\\",\\"name\\":\\"创建人\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"update_time\\",\\"name\\":\\"更新时间\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"create_time\\",\\"name\\":\\"创建时间\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"name\\":\\"线索来源\\",\\"options\\":\\"促销,搜索引擎,广告,转介绍,线上注册,线上询价,预约上门,电话咨询,邮件咨询\\",\\"type\\":3,\\"fieldName\\":\\"线索来源\\",\\"setting\\":[\\"促销\\",\\"搜索引擎\\",\\"广告\\",\\"转介绍\\",\\"线上注册\\",\\"线上询价\\",\\"预约上门\\",\\"电话咨询\\",\\"邮件咨询\\"]},{\\"fieldId\\":5,\\"formType\\":\\"select\\",\\"name\\":\\"客户行业\\",\\"options\\":\\"IT,金融业,房地产,商业服务,运输/物流,生产,政府,文化传媒\\",\\"type\\":3,\\"fieldName\\":\\"客户行业\\",\\"setting\\":[\\"IT\\",\\"金融业\\",\\"房地产\\",\\"商业服务\\",\\"运输/物流\\",\\"生产\\",\\"政府\\",\\"文化传媒\\"]},{\\"fieldId\\":6,\\"formType\\":\\"select\\",\\"name\\":\\"客户级别\\",\\"options\\":\\"A(重点客户),B(普通客户),C(非优先客户)\\",\\"type\\":3,\\"fieldName\\":\\"客户级别\\",\\"setting\\":[\\"A(重点客户)\\",\\"B(普通客户)\\",\\"C(非优先客户)\\"]}]},\\"bom\\":{\\"id\\":\\"12\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"产品结构编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"产品结构名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ParentItemCode\\",\\"name\\":\\"主物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ChildItemCode\\",\\"name\\":\\"子物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"minwidth\\":\\"30%\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"minwidth\\":\\"30%\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ChildItemUomName\\",\\"name\\":\\"子物品计量单位名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Qty\\",\\"name\\":\\"用量\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"uomGroup\\":{\\"id\\":\\"13\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"uom\\":{\\"id\\":\\"14\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"派生自计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DerivedFrom\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomGroupName\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Desc\\",\\"setting\\":[]}]},\\"interfaceCalendar\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"接口日历编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"接口日历名称\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"日历年\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Year\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"日历月\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Month\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":7,\\"formType\\":\\"textarea\\",\\"isNull\\":0,\\"name\\":\\"接口日历描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"verificationStages\\":{\\"id\\":\\"16\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"验证\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"VerificationName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"步骤\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StageName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"int\\",\\"isNull\\":1,\\"name\\":\\"顺序\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Seq\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"datetime\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EffectiveTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"datetime\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ExpireTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"area\\":{\\"id\\":\\"17\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":1,\\"name\\":\\"是否功能区\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsFunctional\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"areaItem\\":{\\"id\\":\\"18\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"currency\\":{\\"id\\":\\"19\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否基本货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsBasicCurrency\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"currencyExchange\\":{\\"id\\":\\"20\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"basicCurrency\\",\\"isNull\\":1,\\"name\\":\\"基本货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BasicCurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"rate\\",\\"isNull\\":1,\\"name\\":\\"比率\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Rate\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EfficetiveTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ExpireTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerBom\\":{\\"id\\":\\"21\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"parentItem\\",\\"isNull\\":1,\\"name\\":\\"主物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ParentItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"childItem\\",\\"isNull\\":1,\\"name\\":\\"子物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ChildItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"number4\\",\\"isNull\\":1,\\"name\\":\\"用量\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Qty\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EffectiveTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"FailureTime\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerItem\\":{\\"id\\":\\"22\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"客户物品计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户物品描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"eqptType\\":{\\"id\\":\\"23\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许重复使用\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllowReusable\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许混物品\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllowMixItem\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"eqptTypeItem\\":{\\"id\\":\\"24\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"eqptType\\",\\"isNull\\":1,\\"name\\":\\"器具类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EqptTypeName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具容量\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EqptCapacity\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"item\\":{\\"id\\":\\"25\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"显示编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DisplayCode\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"ERP物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ErpItemCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品版本号\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Status\\",\\"setting\\":[]},{\\"fieldId\\":23,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"itemTransTypeInventoryRoute\\":{\\"id\\":\\"26\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemType\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"inventoryRoute\\",\\"isNull\\":1,\\"name\\":\\"路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"InventoryRouteName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"itemTransTypeOpStrategy\\":{\\"id\\":\\"27\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"allocation\\",\\"isNull\\":1,\\"name\\":\\"分配\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllocationName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工序\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OperateProcess\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"supplier\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"strategy\\",\\"isNull\\":1,\\"name\\":\\"策略\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StrategyName\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"loc\\":{\\"id\\":\\"28\\",\\"data\\":[{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"slg\\",\\"isNull\\":1,\\"name\\":\\"库位组\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SlgName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"wlg\\",\\"isNull\\":1,\\"name\\":\\"工作组\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WlgName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]},{\\"fieldId\\":19,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"machine\\":{\\"id\\":\\"29\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"生产线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"workCenter\\",\\"isNull\\":1,\\"name\\":\\"工作中心\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WorkCenterName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"param\\":{\\"id\\":\\"30\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数值\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Value\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数分组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Group\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"port\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PortDesc\\",\\"setting\\":[]}]},\\"prodLine\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"prodLineItem\\":{\\"id\\":\\"33\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"生产线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"bom\\",\\"isNull\\":1,\\"name\\":\\"产品结构\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BomName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"RouteName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"project\\":{\\"id\\":\\"34\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Status\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Desc\\",\\"setting\\":[]}]},\\"shift\\":{\\"id\\":\\"35\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"slg\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"slg\\",\\"isNull\\":1,\\"name\\":\\"溢流库位组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OverflowSlgName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"默认库存状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DefaultInventoryStatus\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"领料优先级\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PickPriority\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"supplier\\":{\\"id\\":\\"37\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系人\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Contact\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系电话\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ContactPhone\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系邮件\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ContactEmail\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"supplierItem\\":{\\"id\\":\\"38\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"supplier\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品版本号\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"供应商物品计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"team\\":{\\"id\\":\\"39\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"uomConversion\\":{\\"id\\":\\"40\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"int\\",\\"isNull\\":1,\\"name\\":\\"转换类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConversionType\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"convertUom\\",\\"isNull\\":1,\\"name\\":\\"转换计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConvertUomName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"baseUom\\",\\"isNull\\":1,\\"name\\":\\"基本计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BaseUomName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"rate\\",\\"isNull\\":1,\\"name\\":\\"转换比率\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConvertRate\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"wlg\\":{\\"id\\":\\"41\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"Code\\",\\"isNull\\":1,\\"name\\":\\"工作组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"wlgItem\\":{\\"id\\":\\"42\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"wlg\\",\\"isNull\\":1,\\"name\\":\\"工作组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WlgName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"workCalendar\\":{\\"id\\":\\"43\\",\\"data\\":[{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"模块\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Module\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"workCenter\\":{\\"id\\":\\"44\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"工作中心编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"inventoryRoute\\":{\\"id\\":\\"44\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"inventoryRouteDetail\\":{\\"id\\":\\"45\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"inventoryRoute\\",\\"isNull\\":1,\\"name\\":\\"物流路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"InventoryRouteName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"任务类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"TaskType\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"purchasePriceDetail\\":{\\"id\\":\\"46\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"PurchasePriceSheet\\",\\"isNull\\":1,\\"name\\":\\"价格单\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PurchasePriceSheetName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"采购价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PurchasePrice\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"purchasePriceSheet\\":{\\"id\\":\\"47\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"route\\":{\\"id\\":\\"48\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"routeDetail\\":{\\"id\\":\\"49\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"route\\",\\"isNull\\":1,\\"name\\":\\"工艺路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"RouteName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"machine\\",\\"isNull\\":1,\\"name\\":\\"机器\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"MachineName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工序\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OperateProcess\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"workCenter\\",\\"isNull\\":1,\\"name\\":\\"工作中心\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WorkCenterName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"salePriceDetail\\":{\\"id\\":\\"50\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"SalePriceSheet\\",\\"isNull\\":1,\\"name\\":\\"销售价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SalePriceSheetName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SalePrice\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"是否可用\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsEnable\\",\\"setting\\":[]}]},\\"salePriceSheet\\":{\\"id\\":\\"51\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"stdCostPriceDetail\\":{\\"id\\":\\"52\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StdCostPrice\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"stdCostPriceSheet\\":{\\"id\\":\\"53\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIzMDFhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///301a\n')},"34a3":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjkyNEZERDVFRjEzRTExRTg4QkY0RTZEOTBENUJDRDVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkyNEZERDVGRjEzRTExRTg4QkY0RTZEOTBENUJDRDVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTI0RkRENUNGMTNFMTFFODhCRjRFNkQ5MEQ1QkNENUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTI0RkRENURGMTNFMTFFODhCRjRFNkQ5MEQ1QkNENUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4jB+1jAAAAxUlEQVR42sxUQQ4CIQwEs0f1vKuJPkS/wSt5hu5D1oPLrnevWJJyaQIMGw5OMimhZVJaivbeq5bYqcbo4sJau1nEGFOV4YPo2eIZMnIFvSf8OlfD4PwSj7xOcc9xGmnKmzgUbnYmzmiXP8RTQTD4V1RwFoKTsAE90aGCKx+IuAgbM1xQQcc1KtUQFlxEU17CVl9ZCl6FrW6KA7vc9NkMHKfQhx0m4ZYQC/sHjivOsuKRGonPTIYjx0GC8SPYBP33P/ZPgAEAKNUs9Dp9fGoAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZz9iYTBkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiIzNGEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBVUNBWUFBQUNOaVIwTkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamt5TkVaRVJEVkZSakV6UlRFeFJUZzRRa1kwUlRaRU9UQkVOVUpEUkRWRklpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qa3lORVpFUkRWR1JqRXpSVEV4UlRnNFFrWTBSVFpFT1RCRU5VSkRSRFZGSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk9USTBSa1JFTlVOR01UTkZNVEZGT0RoQ1JqUkZOa1E1TUVRMVFrTkVOVVVpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2T1RJMFJrUkVOVVJHTVRORk1URkZPRGhDUmpSRk5rUTVNRVExUWtORU5VVWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRqQisxakFBQUF4VWxFUVZSNDJzeFVRUTRDSVF3RXMwZjF2S3VKUGtTL3dTdDVodTVEMW9QTHJuZXZXSkp5YVFJTUd3NU9NaW1oWlZKYWl2YmVxNWJZcWNibzRzSmF1MW5FR0ZPVjRZUG8yZUlaTW5JRnZTZjhPbGZENFB3U2o3eE9jYzl4R21uS216Z1Viblltem1pWFA4UlRRVEQ0VjFSd0ZvS1RzQUU5MGFHQ0t4K0l1QWdiTTF4UVFjYzFLdFVRRmx4RVUxN0NWbDlaQ2w2RnJXNktBN3ZjOU5rTUhLZlFoeDBtNFpZUUMvc0hqaXZPc3VLUkdvblBUSVlqeDBHQzhTUFlCUDMzUC9aUGdBRUFLTlVzOURwOWZHb0FBQUFBU1VWT1JLNUNZSUk9XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34a3\n')},"34aa":function(module){eval('module.exports = JSON.parse("{\\"router\\":{\\"apiRoute\\":\\"/api\\"},\\"modules\\":{\\"Manufacture\\":\\"/manufacture\\",\\"Sale\\":\\"/sale\\"},\\"crmTypes\\":{\\"Detail\\":\\"/details\\",\\"Bom\\":\\"/bom\\",\\"Machine\\":\\"/machine\\",\\"MachineShop\\":\\"/machineShop\\",\\"MachineShopItem\\":\\"/machineShopItem\\",\\"ProdLine\\":\\"/prodLine\\",\\"ProdLineItem\\":\\"/prodLineItem\\",\\"Route\\":\\"/route\\",\\"RouteDetail\\":\\"/routeDetail\\",\\"Shift\\":\\"/shift\\",\\"Team\\":\\"/team\\",\\"WorkCenter\\":\\"/workCenter\\",\\"Customer\\":\\"/customer\\",\\"CustomerItem\\":\\"/customerItem\\",\\"CustomerBom\\":\\"/customerBom\\"},\\"funcs\\":{\\"NullFunc\\":\\"/\\",\\"ListFunc\\":\\"/list\\",\\"CountFunc\\":\\"/count\\",\\"AllFunc\\":\\"/all\\",\\"AddFunc\\":\\"/add\\",\\"UpdateFunc\\":\\"/update\\",\\"DeleteFunc\\":\\"/delete\\",\\"ImportFunc\\":\\"/import\\"}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIzNGFhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34aa\n')},"38c3":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return crmRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return crmRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return crmRouteUpdate; });\n/* unused harmony export crmRouteDelete */\n/* unused harmony export crmRouteDetailListRead */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmRouteDetailRead; });\n/* unused harmony export crmRouteDetailIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmRouteDetailAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmRouteDetailUpdate; });\n/* unused harmony export crmRouteDetailDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar routemodule = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Route;\nvar routeDetailmodule = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.RouteDetail;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Route;\nvar detailType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Detail;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; // 获取列表\n\nfunction crmRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + routemodule + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/route/list\',data)\n} // 创建\n\nfunction crmRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + routemodule + crmType, data); //return axios.posts(\'/api/basedata/route\',data)\n} // 根据id获取\n\nfunction crmRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/route/\'+id)\n} // 根据id修改\n\nfunction crmRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/route/\'+id,data)\n} // 删除\n\nfunction crmRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data);\n} //获取子项列表\n\nfunction crmRouteDetailListRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + id + detailType); //return axios.gets(api+module+crmType+id+\'/details\')\n} //按照主表ID和子表ID获取子项详细信息\n\nfunction crmRouteDetailRead(id, detailId) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + id + detailType + funcs.NullFunc + detailId); //return axios.gets(api+module+crmType+id+\'/details/\'+detailId)\n} //按筛选条件获取子项列表\n\nfunction crmRouteDetailIndex(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType, data); //return axios.posts(api+module+crmType+id+\'/details\',data)\n} //新增子项\n\nfunction crmRouteDetailAdd(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.AddFunc, data); //return axios.posts(api+module+crmType+id+\'/details/add\',data)\n} //修改子项\n\nfunction crmRouteDetailUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.UpdateFunc, data); //return axios.posts(api+module+crmType+id+\'/details/update\',data)\n} //删除子项\n\nfunction crmRouteDetailDelete(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.DelateFunc, data); //return axios.posts(api+module+crmType+id+\'/details/delete\',data)\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("dd40")(module)))\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3JvdXRlL3JvdXRlLmpzPzM4YzMiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJyb3V0ZW1vZHVsZSIsIm1vZHVsZXMiLCJSb3V0ZSIsInJvdXRlRGV0YWlsbW9kdWxlIiwiUm91dGVEZXRhaWwiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJkZXRhaWxUeXBlIiwiRGV0YWlsIiwiZnVuY3MiLCJjcm1Sb3V0ZUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVJvdXRlU2F2ZSIsImNybVJvdXRlUmVhZCIsImlkIiwiZ2V0cyIsIm1vZHVsZSIsIk51bGxGdW5jIiwiY3JtUm91dGVVcGRhdGUiLCJwdXRzIiwiY3JtUm91dGVEZWxldGUiLCJEZWxldGVGdW5jIiwiY3JtUm91dGVEZXRhaWxMaXN0UmVhZCIsImNybVJvdXRlRGV0YWlsUmVhZCIsImRldGFpbElkIiwiY3JtUm91dGVEZXRhaWxJbmRleCIsImNybVJvdXRlRGV0YWlsQWRkIiwiQWRkRnVuYyIsImNybVJvdXRlRGV0YWlsVXBkYXRlIiwiVXBkYXRlRnVuYyIsImNybVJvdXRlRGV0YWlsRGVsZXRlIiwiRGVsYXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsV0FBVyxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxLQUFyQztBQUNBLElBQU1DLGlCQUFpQixHQUFFTiwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCRyxXQUEzQztBQUNBLElBQU1DLE9BQU8sR0FBQ1IsMkNBQVMsQ0FBQ1MsUUFBVixDQUFtQkosS0FBakM7QUFDQSxJQUFNSyxVQUFVLEdB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QWlDRSxLQUFLLENBQUN1QixVQUFuRCxFQUE4RHJCLElBQTlELENBQVAsQ0FENEMsQ0FFNUM7QUFDRCxDLENBRUQ7O0FBQ08sU0FBU3NCLG9CQUFULENBQThCaEIsRUFBOUIsRUFBaUNOLElBQWpDLEVBQXVDO0FBQzVDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWpCLEdBQUcsR0FBQ3VCLE1BQUosR0FBV2QsT0FBWCxHQUFtQlksRUFBbkIsR0FBc0JWLFVBQXRCLEdBQWlDRSxLQUFLLENBQUN5QixVQUFuRCxFQUE4RHZCLElBQTlELENBQVAsQ0FENEMsQ0FFNUM7QUFDRCxDIiwiZmlsZSI6IjM4YzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IHJvdXRlbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5Sb3V0ZTtcclxuY29uc3Qgcm91dGVEZXRhaWxtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLlJvdXRlRGV0YWlsO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5Sb3V0ZTtcclxuY29uc3QgZGV0YWlsVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuRGV0YWlsO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJvdXRlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrcm91dGVtb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3JvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrcm91dGVtb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3JvdXRlJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9yb3V0ZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9yb3V0ZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbn1cclxuXHJcbi8v6I635Y+W5a2Q6aG55YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbExpc3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2lkK2RldGFpbFR5cGUpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzJylcclxufVxyXG5cclxuLy/mjInnhafkuLvooahJROWSjOWtkOihqElE6I635Y+W5a2Q6aG56K+m57uG5L+h5oGvXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbFJlYWQoaWQsZGV0YWlsSWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrZGV0YWlsVHlwZStmdW5jcy5OdWxsRnVuYytkZXRhaWxJZClcclxuICAvL3JldHVybiBheGlvcy5nZXRzKGFwaSttb2R1bGUrY3JtVHlwZStpZCsnL2RldGFpbHMvJytkZXRhaWxJZClcclxufVxyXG5cclxuLy/mjInnrZvpgInmnaHku7bojrflj5blrZDpobnliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJvdXRlRGV0YWlsSW5kZXgoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrZGV0YWlsVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCsnL2RldGFpbHMnLGRhdGEpXHJcbn1cclxuXHJcbi8v5paw5aKe5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbEFkZChpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLkFkZEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL2FkZCcsZGF0YSlcclxufVxyXG4gXHJcbi8v5L+u5pS55a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLlVwZGF0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL3VwZGF0ZScsZGF0YSlcclxufVxyXG4gXHJcbi8v5Yig6Zmk5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbERlbGV0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLkRlbGF0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL2RlbGV0ZScsZGF0YSlcclxufVxyXG5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38c3\n')},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"41d5":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomGroupIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomGroupSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomGroupRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomGroupUpdate; });\n/* unused harmony export crmUomGroupDelete */\n/* unused harmony export winUomGroupExcelImportTemplate */\n/* unused harmony export winUomGroupExcelImport */\n/* unused harmony export winUomGroupExcelAllExport */\n/* harmony import */ var _axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n\nfunction crmUomGroupIndex(data) {\n //获取列表数据\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/list\', data);\n}\nfunction crmUomGroupSave(data) {\n //新增\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group\', data);\n}\nfunction crmUomGroupRead(id) {\n //根据id获取单条数据\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-group/\' + id);\n}\nfunction crmUomGroupUpdate(id, data) {\n //更新\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom-group/\' + id, data);\n}\nfunction crmUomGroupDelete(data) {\n //删除\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/delete\', data);\n} //生成模板\n\nfunction winUomGroupExcelImportTemplate(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/saveUomGroupExcelImportTemplate\', data);\n} //导入功能\n\nfunction winUomGroupExcelImport(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/UomGroupExcelImport\', data);\n} //导出功能(不关联组织ID)\n\nfunction winUomGroupExcelAllExport(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-group/UomGroupExcelExporte\', data);\n} //导入功能\n// export function winUomGroupExcelImport(data) {\n// var param = new FormData()\n// Object.keys(data).forEach(key => {\n// param.append(key, data[key])\n// })\n// return request({\n// url: \'/api/basedata/uom-group/UomGroupExcelImport\',\n// method: \'post\',\n// data: param,\n// headers: {\n// \'Content-Type\': \'multipart/form-data\'\n// }\n// })\n// }\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbUdyb3VwL3VvbUdyb3VwLmpzPzQxZDUiXSwibmFtZXMiOlsiY3JtVW9tR3JvdXBJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tR3JvdXBTYXZlIiwiY3JtVW9tR3JvdXBSZWFkIiwiaWQiLCJnZXRzIiwiY3JtVW9tR3JvdXBVcGRhdGUiLCJwdXRzIiwiY3JtVW9tR3JvdXBEZWxldGUiLCJ3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0VGVtcGxhdGUiLCJ3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0Iiwid2luVW9tR3JvdXBFeGNlbEFsbEV4cG9ydCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTs7QUFDTyxTQUFTQSxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFBQztBQUN0QyxTQUFPQyxzREFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRDtBQUNNLFNBQVNHLGVBQVQsQ0FBeUJILElBQXpCLEVBQStCO0FBQUM7QUFDckMsU0FBT0Msc0RBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0Q7QUFDTSxTQUFTSSxlQUFULENBQXlCQyxFQUF6QixFQUE2QjtBQUFDO0FBQ25DLFNBQU9KLHNEQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRDtBQUNNLFNBQVNFLGlCQUFULENBQTJCRixFQUEzQixFQUE4QkwsSUFBOUIsRUFBb0M7QUFBQztBQUMxQyxTQUFPQyxzREFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNEO0FBQ00sU0FBU1MsaUJBQVQsQ0FBMkJULElBQTNCLEVBQWlDO0FBQUM7QUFDdkMsU0FBT0Msc0RBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNVLDhCQUFULENBQXdDVixJQUF4QyxFQUE4QztBQUNuRCxTQUFPQyxzREFBSyxDQUFDQyxLQUFOLENBQVkseURBQVosRUFBc0VGLElBQXRFLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1csc0JBQVQsQ0FBZ0NYLElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLHNEQUFLLENBQUNDLEtBQU4sQ0FBWSw2Q0FBWixFQUEwREYsSUFBMUQsQ0FBUDtBQUNELEMsQ0FFRDs7QUFDTyxTQUFTWSx5QkFBVCxDQUFtQ1osSUFBbkMsRUFBeUM7QUFDOUMsU0FBT0Msc0RBQUssQ0FBQ0ssSUFBTixDQUFXLDhDQUFYLEVBQTBETixJQUExRCxDQUFQO0FBQ0QsQyxDQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0MWQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MnXHJcbi8qYXhpb3MqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tR3JvdXBJbmRleChkYXRhKSB7Ly/ojrflj5bliJfooajmlbDmja5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL2xpc3QnLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwU2F2ZShkYXRhKSB7Ly/mlrDlop5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwJyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Hcm91cFJlYWQoaWQpIHsvL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwLycraWQpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwVXBkYXRlKGlkLGRhdGEpIHsvL+abtOaWsFxyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS1ncm91cC8nK2lkLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwRGVsZXRlKGRhdGEpIHsvL+WIoOmZpFxyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tZ3JvdXAvZGVsZXRlJyxkYXRhKVxyXG59XHJcblxyXG4vL+eUn+aIkOaooeadv1xyXG5leHBvcnQgZnVuY3Rpb24gd2luVW9tR3JvdXBFeGNlbEltcG9ydFRlbXBsYXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL3NhdmVVb21Hcm91cEV4Y2VsSW1wb3J0VGVtcGxhdGUnLGRhdGEpXHJcbn1cclxuLy/lr7zlhaXlip/og71cclxuZXhwb3J0IGZ1bmN0aW9uIHdpblVvbUdyb3VwRXhjZWxJbXBvcnQoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tZ3JvdXAvVW9tR3JvdXBFeGNlbEltcG9ydCcsZGF0YSlcclxufVxyXG5cclxuLy/lr7zlh7rlip/og73vvIjkuI3lhbPogZTnu4Tnu4dJRO+8iVxyXG5leHBvcnQgZnVuY3Rpb24gd2luVW9tR3JvdXBFeGNlbEFsbEV4cG9ydChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL1VvbUdyb3VwRXhjZWxFeHBvcnRlJyxkYXRhKVxyXG59XHJcbi8v5a+85YWl5Yqf6IO9XHJcbi8vIGV4cG9ydCBmdW5jdGlvbiB3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0KGRhdGEpIHtcclxuLy8gICB2YXIgcGFyYW0gPSBuZXcgRm9ybURhdGEoKVxyXG4vLyAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goa2V5ID0+IHtcclxuLy8gICAgIHBhcmFtLmFwcGVuZChrZXksIGRhdGFba2V5XSlcclxuLy8gICB9KVxyXG4vLyAgIHJldHVybiByZXF1ZXN0KHtcclxuLy8gICAgIHVybDogJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL1VvbUdyb3VwRXhjZWxJbXBvcnQnLFxyXG4vLyAgICAgbWV0aG9kOiAncG9zdCcsXHJcbi8vICAgICBkYXRhOiBwYXJhbSxcclxuLy8gICAgIGhlYWRlcnM6IHtcclxuLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xyXG4vLyAgICAgfVxyXG4vLyAgIH0pXHJcbi8vIH1cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///41d5\n')},4381:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__("6762");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__("2fdb");\n\n// EXTERNAL MODULE: ./src/store/index.js + 1 modules\nvar store = __webpack_require__("4360");\n\n// CONCATENATED MODULE: ./src/directive/permission/permission.js\n\n\n\n/* harmony default export */ var permission = ({\n inserted: function inserted(el, binding, vnode) {\n var value = binding.value;\n var roles = store["a" /* default */].getters && store["a" /* default */].getters.roles;\n\n if (value && value instanceof Array && value.length > 0) {\n var permissionRoles = value;\n var hasPermission = roles.some(function (role) {\n return permissionRoles.includes(role);\n });\n\n if (!hasPermission) {\n el.parentNode && el.parentNode.removeChild(el);\n }\n } else {\n throw new Error("need roles! Like v-permission=\\"[\'admin\',\'editor\']\\"");\n }\n }\n});\n// CONCATENATED MODULE: ./src/directive/permission/index.js\n\n\nvar permission_install = function install(Vue) {\n Vue.directive(\'permission\', permission);\n};\n\nif (window.Vue) {\n window[\'permission\'] = permission;\n Vue.use(permission_install); // eslint-disable-line\n}\n\npermission.install = permission_install;\n/* harmony default export */ var directive_permission = __webpack_exports__["a"] = (permission);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZGlyZWN0aXZlL3Blcm1pc3Npb24vcGVybWlzc2lvbi5qcz9lNzk5Iiwid2VicGFjazovLy8uL3NyYy9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qcz80MzgxIl0sIm5hbWVzIjpbImluc2VydGVkIiwiZWwiLCJiaW5kaW5nIiwidm5vZGUiLCJ2YWx1ZSIsInJvbGVzIiwic3RvcmUiLCJnZXR0ZXJzIiwiQXJyYXkiLCJsZW5ndGgiLCJwZXJtaXNzaW9uUm9sZXMiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsInJvbGUiLCJpbmNsdWRlcyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsIkVycm9yIiwiaW5zdGFsbCIsIlZ1ZSIsImRpcmVjdGl2ZSIsInBlcm1pc3Npb24iLCJ3aW5kb3ciLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUVlO0FBQ2JBLFVBRGEsb0JBQ0pDLEVBREksRUFDQUMsT0FEQSxFQUNTQyxLQURULEVBQ2dCO0FBQzNCLFFBQVFDLEtBQVIsR0FBa0JGLE9BQWxCLENBQVFFLEtBQVI7QUFDQSxRQUFNQyxLQUFLLEdBQUdDLHdCQUFLLENBQUNDLE9BQU4sSUFBaUJELHdCQUFLLENBQUNDLE9BQU4sQ0FBY0YsS0FBN0M7O0FBRUEsUUFBSUQsS0FBSyxJQUFJQSxLQUFLLFlBQVlJLEtBQTFCLElBQW1DSixLQUFLLENBQUNLLE1BQU4sR0FBZSxDQUF0RCxFQUF5RDtBQUN2RCxVQUFNQyxlQUFlLEdBQUdOLEtBQXhCO0FBRUEsVUFBTU8sYUFBYSxHQUFHTixLQUFLLENBQUNPLElBQU4sQ0FBVyxVQUFBQyxJQUFJLEVBQUk7QUFDdkMsZUFBT0gsZUFBZSxDQUFDSSxRQUFoQixDQUF5QkQsSUFBekIsQ0FBUDtBQUNELE9BRnFCLENBQXRCOztBQUlBLFVBQUksQ0FBQ0YsYUFBTCxFQUFvQjtBQUNsQlYsVUFBRSxDQUFDYyxVQUFILElBQWlCZCxFQUFFLENBQUNjLFVBQUgsQ0FBY0MsV0FBZCxDQUEwQmYsRUFBMUIsQ0FBakI7QUFDRDtBQUNGLEtBVkQsTUFVTztBQUNMLFlBQU0sSUFBSWdCLEtBQUosd0RBQU47QUFDRDtBQUNGO0FBbEJZLENBQWYsRTs7QUNGQTs7QUFFQSxJQUFNQyxrQkFBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBU0MsR0FBVCxFQUFjO0FBQzVCQSxLQUFHLENBQUNDLFNBQUosQ0FBYyxZQUFkLEVBQTRCQyxVQUE1QjtBQUNELENBRkQ7O0FBSUEsSUFBSUMsTUFBTSxDQUFDSCxHQUFYLEVBQWdCO0FBQ2RHLFFBQU0sQ0FBQyxZQUFELENBQU4sR0FBdUJELFVBQXZCO0FBQ0FGLEtBQUcsQ0FBQ0ksR0FBSixDQUFRTCxrQkFBUixFQUZjLENBRUk7QUFDbkI7O0FBRURHLFVBQVUsQ0FBQ0gsT0FBWCxHQUFxQkEsa0JBQXJCO0FBQ2VHLDhGQUFmIiwiZmlsZSI6IjQzODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RvcmUgZnJvbSAnQC9zdG9yZSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBpbnNlcnRlZChlbCwgYmluZGluZywgdm5vZGUpIHtcclxuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGJpbmRpbmdcclxuICAgIGNvbnN0IHJvbGVzID0gc3RvcmUuZ2V0dGVycyAmJiBzdG9yZS5nZXR0ZXJzLnJvbGVzXHJcblxyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBwZXJtaXNzaW9uUm9sZXMgPSB2YWx1ZVxyXG5cclxuICAgICAgY29uc3QgaGFzUGVybWlzc2lvbiA9IHJvbGVzLnNvbWUocm9sZSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25Sb2xlcy5pbmNsdWRlcyhyb2xlKVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgaWYgKCFoYXNQZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgZWwucGFyZW50Tm9kZSAmJiBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5lZWQgcm9sZXMhIExpa2Ugdi1wZXJtaXNzaW9uPVwiWydhZG1pbicsJ2VkaXRvciddXCJgKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgcGVybWlzc2lvbiBmcm9tICcuL3Blcm1pc3Npb24nXHJcblxyXG5jb25zdCBpbnN0YWxsID0gZnVuY3Rpb24oVnVlKSB7XHJcbiAgVnVlLmRpcmVjdGl2ZSgncGVybWlzc2lvbicsIHBlcm1pc3Npb24pXHJcbn1cclxuXHJcbmlmICh3aW5kb3cuVnVlKSB7XHJcbiAgd2luZG93WydwZXJtaXNzaW9uJ10gPSBwZXJtaXNzaW9uXHJcbiAgVnVlLnVzZShpbnN0YWxsKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxyXG59XHJcblxyXG5wZXJtaXNzaW9uLmluc3RhbGwgPSBpbnN0YWxsXHJcbmV4cG9ydCBkZWZhdWx0IHBlcm1pc3Npb25cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4381\n')},"4a49":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerUpdate; });\n/* unused harmony export crmCustomerDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Bom;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; // 获取列表\n\nfunction crmCustomerIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer/list\', data);\n} // 创建\n\nfunction crmCustomerSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer\', data);\n} // 根据id获取\n\nfunction crmCustomerRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer/\' + id);\n} // 根据id修改\n\nfunction crmCustomerUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer/\' + id, data);\n} // 删除\n\nfunction crmCustomerDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVyL2N1c3RvbWVyLmpzPzRhNDkiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJCb20iLCJmdW5jcyIsImNybUN1c3RvbWVySW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsImNybUN1c3RvbWVyU2F2ZSIsImNybUN1c3RvbWVyUmVhZCIsImlkIiwiZ2V0cyIsImNybUN1c3RvbWVyVXBkYXRlIiwicHV0cyIsImNybUN1c3RvbWVyRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxHQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiNGE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG5pbXBvcnQgYXBpQ29uZmlnIGZyb20gJ0AvYXBpL2FwaUNvbmZpZydcclxuXHJcbmNvbnN0IGFwaT0gYXBpQ29uZmlnLnJvdXRlci5hcGlSb3V0ZTtcclxuY29uc3QgbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5NYW51ZmFjdHVyZTtcclxuY29uc3QgY3JtVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuQm9tO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVyUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVyVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckRlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4a49\n')},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},"4fee":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProjectIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProjectSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProjectRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProjectUpdate; });\n/* unused harmony export crmProjectDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmProjectIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project/list\', data);\n} // 创建\n\nfunction crmProjectSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project\', data);\n} // 根据id获取\n\nfunction crmProjectRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/project/\' + id);\n} // 根据id修改\n\nfunction crmProjectUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/project/\' + id, data);\n} // 删除\n\nfunction crmProjectDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2plY3QvcHJvamVjdC5qcz80ZmVlIl0sIm5hbWVzIjpbImNybVByb2plY3RJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUHJvamVjdFNhdmUiLCJjcm1Qcm9qZWN0UmVhZCIsImlkIiwiZ2V0cyIsImNybVByb2plY3RVcGRhdGUiLCJwdXRzIiwiY3JtUHJvamVjdERlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsZUFBVCxDQUF5QkMsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILElBQXhCLEVBQThCO0FBQ25DLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx1QkFBWixFQUFvQ0YsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxjQUFULENBQXdCQyxFQUF4QixFQUE0QjtBQUNqQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsMkJBQXlCRCxFQUFwQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGdCQUFULENBQTBCRixFQUExQixFQUE2QkwsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLDJCQUF5QkgsRUFBcEMsRUFBdUNMLElBQXZDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsZ0JBQVQsQ0FBMEJULElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSw4QkFBWixFQUEyQ0YsSUFBM0MsQ0FBUDtBQUNEIiwiZmlsZSI6IjRmZWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0L2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0U2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2plY3QnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2plY3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcHJvamVjdC8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0LycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2plY3REZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4fee\n')},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},5092:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWorkCalendarIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWorkCalendarSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWorkCalendarRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWorkCalendarUpdate; });\n/* unused harmony export crmWorkCalendarDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWorkCalendarIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar/list\', data);\n} // 创建\n\nfunction crmWorkCalendarSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar\', data);\n} // 根据id获取\n\nfunction crmWorkCalendarRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/work-calendar/\' + id);\n} // 根据id修改\n\nfunction crmWorkCalendarUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/work-calendar/\' + id, data);\n} // 删除\n\nfunction crmWorkCalendarDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dvcmtDYWxlbmRhci93b3JrQ2FsZW5kYXIuanM/NTA5MiJdLCJuYW1lcyI6WyJjcm1Xb3JrQ2FsZW5kYXJJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV29ya0NhbGVuZGFyU2F2ZSIsImNybVdvcmtDYWxlbmRhclJlYWQiLCJpZCIsImdldHMiLCJjcm1Xb3JrQ2FsZW5kYXJVcGRhdGUiLCJwdXRzIiwiY3JtV29ya0NhbGVuZGFyRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiNTA5Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhckluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvd29yay1jYWxlbmRhci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV29ya0NhbGVuZGFyU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dvcmstY2FsZW5kYXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhclJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93b3JrLWNhbGVuZGFyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhclVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvd29yay1jYWxlbmRhci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2FsZW5kYXJEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrLWNhbGVuZGFyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5092\n')},"53c1":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmVerificationIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmVerificationSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmVerificationRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmVerificationUpdate; });\n/* unused harmony export crmVerificationDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n// 获取列表\n\nfunction crmVerificationIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification/list\', data);\n} // 创建\n\nfunction crmVerificationSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification\', data);\n} // 根据id获取\n\nfunction crmVerificationRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/verification/\' + id);\n} // 根据id修改\n\nfunction crmVerificationUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/verification/\' + id, data);\n} // 删除\n\nfunction crmVerificationDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3ZlcmlmaWNhdGlvbi92ZXJpZmljYXRpb24uanM/NTNjMSJdLCJuYW1lcyI6WyJjcm1WZXJpZmljYXRpb25JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVmVyaWZpY2F0aW9uU2F2ZSIsImNybVZlcmlmaWNhdGlvblJlYWQiLCJpZCIsImdldHMiLCJjcm1WZXJpZmljYXRpb25VcGRhdGUiLCJwdXRzIiwiY3JtVmVyaWZpY2F0aW9uRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFrQztBQUNsQzs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGlDQUFaLEVBQThDRixJQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNEJBQVosRUFBeUNGLElBQXpDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxnQ0FBOEJELEVBQXpDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsZ0NBQThCSCxFQUF6QyxFQUE0Q0wsSUFBNUMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFaLEVBQWdERixJQUFoRCxDQUFQO0FBQ0QiLCJmaWxlIjoiNTNjMS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4JyAvKmF4aW9zKi9cclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVmVyaWZpY2F0aW9uU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbicsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVmVyaWZpY2F0aW9uUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS92ZXJpZmljYXRpb24vZGVsZXRlJyxkYXRhKVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53c1\n')},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"5e2f":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("731e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/ZDBlMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiNWUyZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YmY2ODA1MCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5e2f\n')},"67e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=template&id=6bf68050&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"车型代码","prop":"VehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入版本","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\', \'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.OnlineTimeValue),callback:function ($$v) {_vm.OnlineTimeValue=$$v},expression:"OnlineTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","loading":_vm.buttonLoading},on:{"click":function($event){return _vm.handleUpdate()}}},[_vm._v("重新解析(批量操作) ")])],1),_c(\'el-form-item\',[_c(\'el-button\',{staticClass:"addAssy",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus"},on:{"click":_vm.handleCreate}},[_vm._v("添加总成 ")])],1),_c(\'el-form-item\',{attrs:{"label":"扫描点","prop":"ScanPoint"}},[_c(\'el-select\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"请选择","clearable":""},model:{value:(_vm.listQuery.ScanPoint),callback:function ($$v) {_vm.$set(_vm.listQuery, "ScanPoint", $$v)},expression:"listQuery.ScanPoint"}},_vm._l((_vm.ScanPointList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.label,"value":item.id}})}),1)],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownloadNotRepeat()}}},[_vm._v("导出(不重复) ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"plain":"","size":"mini","type":"success","icon":"el-icon-check","loading":_vm.button2Loading},on:{"click":function($event){return _vm.handleUpdateAll()}}},[_vm._v("重新解析(执行全部) ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%","margin-top":"-25px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"44px"}}),_c(\'el-table-column\',{attrs:{"label":"大众顺序号","prop":"hostSN","sortable":"","align":"center","width":"110px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.hostSN))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"append-to-body":"","width":"1000px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event}}},[_c(\'div\',{staticStyle:{"width":"980px","height":"600px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":8}},[_c(\'div\',{staticStyle:{"border":"1px","width":"280px"}},[_c(\'el-row\',[_c(\'div\',{staticClass:"app"},[_c(\'el-table\',{ref:"asTable",staticStyle:{"margin":"0px","width":"280px"},attrs:{"border":"","height":"260px","data":_vm.erpAssemblyCfgList,"highlight-current-row":""},on:{"row-click":_vm.rowClickass,"select":_vm.selectAss}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyCode","label":"总成编号","align":"center","width":"178px"}}),_c(\'el-table-column\',{attrs:{"align":"center","width":"61px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","size":"mini","align":"left"},on:{"click":function($event){return _vm.delzc(scope.$index, scope.row)}}})]}}])})],1)],1)]),_c(\'el-row\',[_c(\'div\',{staticStyle:{"width":"280px","border":"1px"}},[_c(\'el-divider\',{attrs:{"content-position":"center"}},[_vm._v("添加Erp总成")]),_c(\'el-form\',{ref:"assly",staticStyle:{"border":"1px"},attrs:{"label-position":_vm.labelPosition,"label-width":"100px","model":_vm.assly,"border":""}},[_c(\'el-form-item\',{staticStyle:{"height":"40px","width":"280px"},attrs:{"label":"Erp总成编码"}},[_c(\'el-input\',{attrs:{"clearable":"","placeholder":"请输入Erp总成编码"},model:{value:(_vm.assly.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.assly, "erpAssemblyCode", $$v)},expression:"assly.erpAssemblyCode"}})],1),_c(\'el-form-item\',{staticStyle:{"height":"40px","width":"280px"},attrs:{"label":"Erp总成名称"}},[_c(\'el-input\',{attrs:{"clearable":"","placeholder":"请输入Erp总成名称"},model:{value:(_vm.assly.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.assly, "erpAssemblyName", $$v)},expression:"assly.erpAssemblyName"}})],1),_c(\'el-form-item\',{staticStyle:{"height":"40px"},attrs:{"label":"车型"}},[_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择车型"},model:{value:(_vm.assly.carModel),callback:function ($$v) {_vm.$set(_vm.assly, "carModel", $$v)},expression:"assly.carModel"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":function($event){return _vm.submitAssyForm(\'assly\')}}},[_vm._v("添加")])],1)],1)],1)])],1)]),_c(\'el-col\',{attrs:{"span":7}},[_c(\'div\',{staticStyle:{"border":"1px","height":"570px","width":"270px"}},[_c(\'el-table\',{ref:"leftTable",attrs:{"data":_vm.tempdetails,"height":"550","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.rowClickLeft,"select":_vm.selectLeft,"select-all":_vm.selectLeftAll}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"结算件代码","width":"150px","align":"center"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"数量","width":"78px","align":"center"}})],1)],1)]),_c(\'el-col\',{attrs:{"span":2}},[_c(\'div\',{staticStyle:{"height":"570px","width":"70px"},attrs:{"align":"center"}},[_c(\'el-row\',{staticStyle:{"line-height":"300px"}},[_c(\'el-button\',{attrs:{"icon":"el-icon-caret-left"},on:{"click":function($event){return _vm.btnleftclick()}}})],1),_c(\'el-row\',[_c(\'el-button\',{attrs:{"icon":"el-icon-caret-right"},on:{"click":function($event){return _vm.btnrightclick()}}})],1)],1)]),_c(\'el-col\',{attrs:{"span":7}},[_c(\'div\',{staticStyle:{"border":"1px","height":"570px","width":"270px"}},[_c(\'el-table\',{ref:"rightTable",attrs:{"data":_vm.data2,"height":"550","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.rowClickRight,"select":_vm.selectRight,"select-all":_vm.selectRightAll}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"结算件代码","width":"150px","align":"center"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"数量","width":"78px","align":"center"}})],1)],1)])],1),_c(\'div\',{staticClass:"dialog-footer",staticStyle:{"width":"950px"},attrs:{"slot":"footer","align":"right"},slot:"footer"},[_c(\'el-button\',{attrs:{"loading":_vm.formLoading,"type":"primary"},on:{"click":_vm.save}},[_vm._v("确认")])],1)],1)]),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogNumVisible,"close-on-click-modal":false,"title":_vm.numTitle,"append-to-body":"","width":"570px"},on:{"update:visible":function($event){_vm.dialogNumVisible=$event}}},[_c(\'div\',[_c(\'el-form\',{ref:"numFormData",staticClass:"num-ruleForm",attrs:{"model":_vm.numFormData,"label-width":"100px"}},[_c(\'el-form-item\',{attrs:{"label":"数量","prop":"num","rules":[{ required: true, message: \'数量不能为空且至少为1\' }]}},[_c(\'el-input\',{attrs:{"type":"text"},model:{value:(_vm.numFormData.num),callback:function ($$v) {_vm.$set(_vm.numFormData, "num", $$v)},expression:"numFormData.num"}})],1)],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"loading":_vm.formLoading,"type":"primary"},on:{"click":function($event){return _vm.saveNum()}}},[_vm._v("确认")]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogNumVisible = false}}},[_vm._v("取消")])],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=template&id=6bf68050&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=template&id=593e4c66&scoped=true&\nvar detailvue_type_template_id_593e4c66_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'table\',{staticStyle:{"width":"99%"}},[_c(\'tr\',[_c(\'td\',[_c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"客户零件代码","prop":"partCode ","sortable":"custom","align":"center","width":"220px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',[_vm._v(_vm._s(scope.row.partCode))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1)])]),_c(\'tr\',{staticStyle:{"height":"20px"}},[_c(\'td\',[_c(\'div\',{attrs:{"align":"center"}},[_vm._v("共"+_vm._s(_vm.pagecount)+"条数据")])])])])])}\nvar detailvue_type_template_id_593e4c66_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=template&id=593e4c66&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// EXTERNAL MODULE: ./node_modules/runjs/lib/common.js\nvar common = __webpack_require__("235d");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n pagecount: 0,\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30 - 50,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 67 - 79 - 50; //57为footer高度,79为页面上部标签高度\n //this.tableHeight = offsetHei -260\n });\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30 - 50;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this2 = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this2.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = []; //tempsTabs.push({ label: "客户零件代码", prop: "partCode ", width: 120 });\n\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 95\n });\n tempsTabs.push({\n label: "描述",\n prop: "description",\n width: 280\n });\n return tempsTabs;\n }\n },\n methods: {\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n // fieldFormatter(row, column) {\n // return row[column.property] || "--";\n // },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this3 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/unknown-assembly/" + this.customerInfo.parentId).then(function (response) {\n _this3.list = response.item.unknownAssemblyParts;\n _this3.pagecount = response.item.unknownAssemblyParts.length; //console.log("pagecountpagecountpagecountpagecountpagecount:" + JSON.stringify(this.pagecount));\n\n setTimeout(function () {\n //大数据量加载时\n _this3.listLoading = false;\n }, 500);\n }).catch(function () {\n _this3.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n return {\n textAlign: "left"\n };\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n },\n handleRowClick: function handleRowClick(row, column, event) {\n //this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var unknownAssembly_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=style&index=0&id=593e4c66&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_593e4c66_lang_scss_scoped_true_ = __webpack_require__("8d6c");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n unknownAssembly_detailvue_type_script_lang_js_,\n detailvue_type_template_id_593e4c66_scoped_true_render,\n detailvue_type_template_id_593e4c66_scoped_true_staticRenderFns,\n false,\n null,\n "593e4c66",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=script&lang=js&\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var unknownAssemblyvue_type_script_lang_js_ = ({\n name: "UnknownAssembly",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var _ref;\n\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return _ref = {\n crmType: "bomdatabase",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n OnlineTimeValue: [],\n //上线时间\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n asTemp: [],\n //总成编号点击缓存\n rightRowTemp: [],\n //右侧移动点击缓存\n leftRowTemp: [],\n //左侧移动点击缓存\n selectioned: "",\n //单选中的值\n carModels: [],\n //车型下拉框数据源\n currentRow: "",\n versionList: [],\n //版本列表\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n SkipCount: 0,\n MaxResultCount: 15,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n KNR: undefined,\n VIN: undefined,\n ScanPoint: undefined,\n BillDescription: undefined\n },\n listUnknownAssemblyQuery: {\n billId: "",\n //apply:"",\n vin: ""\n },\n page: 1,\n // 显示搜索条件\n showSearch: true,\n bomUnit: bomUnit,\n multipleSelection: []\n }, Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "dialogFormVisible", false), Object(defineProperty["a" /* default */])(_ref, "dialogNumVisible", false), Object(defineProperty["a" /* default */])(_ref, "formTitle", ""), Object(defineProperty["a" /* default */])(_ref, "numTitle", ""), Object(defineProperty["a" /* default */])(_ref, "isEdit", false), Object(defineProperty["a" /* default */])(_ref, "formLoading", false), Object(defineProperty["a" /* default */])(_ref, "buttonLoading", false), Object(defineProperty["a" /* default */])(_ref, "button2Loading", false), Object(defineProperty["a" /* default */])(_ref, "tableHeight", document.documentElement.clientHeight - 220), Object(defineProperty["a" /* default */])(_ref, "numFormData", {\n num: 1\n }), Object(defineProperty["a" /* default */])(_ref, "zcCode", []), Object(defineProperty["a" /* default */])(_ref, "tempAssCfgList", []), Object(defineProperty["a" /* default */])(_ref, "data2", []), Object(defineProperty["a" /* default */])(_ref, "tempdetails", [//{\n // partCode: "1",\n // partNum: 0,\n // isKey: true\n //}\n ]), Object(defineProperty["a" /* default */])(_ref, "erpAssemblyCfgList", []), Object(defineProperty["a" /* default */])(_ref, "labelPosition", "left"), Object(defineProperty["a" /* default */])(_ref, "assly", {\n erpAssemblyCode: "",\n erpAssemblyName: "",\n carModel: ""\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelQuery", {\n dicTypeName: "派格车型"\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), Object(defineProperty["a" /* default */])(_ref, "ScanPointList", [{\n id: "0",\n label: " "\n }, {\n id: "R100",\n label: "R100"\n }, {\n id: "M100",\n label: "M100"\n }]), _ref;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n });\n },\n created: function created() {\n this.getvehicleModel();\n this.getList();\n },\n computed: {\n getDefaultField: function getDefaultField() {\n var tempsTabs = []; // tempsTabs.push({\n // label: "大众顺序号",\n // prop: "hostSN",\n // width: 150,\n // });\n\n tempsTabs.push({\n label: "底盘号",\n prop: "vin",\n width: 180\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 120\n });\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "扫描点",\n prop: "scanPoint",\n width: 150\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "车型名称",\n prop: "",\n width: 150\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "单据描述",\n prop: "billDescription",\n width: 150\n });\n tempsTabs.push({\n label: "备注",\n prop: "description",\n width: 120\n }); // tempsTabs.push({\n // label: "版本",\n // prop: "version",\n // width: 150,\n // });\n\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 135\n });\n return tempsTabs;\n }\n },\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n handleUpdateAll: function handleUpdateAll() {\n var _this2 = this;\n\n var params = {\n isSelectAll: true,\n unknownAssemblyIdList: []\n };\n this.$confirm("是否要全部进行解析?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this2.button2Loading = true;\n\n _this2.$axios.posts("/api/newjit/unknown-assembly/to-parse", params).then(function (response) {\n if (response.status == true) {\n _this2.$notify({\n title: "成功",\n message: "操作成功!",\n type: "success",\n duration: 2000\n });\n\n _this2.button2Loading = false;\n\n _this2.getList();\n } else {\n _this2.button2Loading = false;\n\n _this2.$message({\n type: "warning",\n message: response.message\n });\n }\n }).catch(function () {\n _this2.button2Loading = false;\n\n _this2.$message({\n type: "warning",\n message: response.message\n });\n });\n });\n },\n\n /** 重新计算总成 */\n handleUpdate: function handleUpdate(row) {\n var _this3 = this;\n\n if (this.multipleSelection.length == 0) {\n this.$message({\n message: "至少选择一行",\n type: "warning"\n });\n return;\n } else {\n this.buttonLoading = true; //批量操作\n\n var params = {\n isSelectAll: false,\n unknownAssemblyIdList: []\n };\n\n if (row) {\n //单行\n params.unknownAssemblyIdList.push(row.id);\n } else {\n //多选\n this.multipleSelection.forEach(function (element) {\n var id = element.id;\n params.unknownAssemblyIdList.push(id);\n });\n }\n\n console.log("未知总成详表条件:" + JSON.stringify(params));\n this.$axios.posts("/api/newjit/unknown-assembly/to-parse", params).then(function (response) {\n if (response.status == true) {\n _this3.$notify({\n title: "成功",\n message: "操作成功!",\n type: "success",\n duration: 2000\n });\n\n _this3.buttonLoading = false;\n\n _this3.getList();\n } else {\n _this3.buttonLoading = false;\n\n _this3.$message({\n type: "warning",\n message: response.message\n });\n }\n }).catch(function () {\n _this3.buttonLoading = false;\n\n _this3.$message({\n type: "warning",\n message: response.message\n });\n });\n }\n },\n fetchData: function fetchData(id) {\n var _this4 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/unknown-assembly/" + id).then(function (response) {\n _this4.form = response.item;\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this5 = this;\n\n this.listLoading = true;\n this.$axios.posts("/api/newjit/unknown-assembly/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this5.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this5.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this5.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this5.listLoading = false;\n });\n });\n },\n\n /** 不重复导出功能 */\n handleDownloadNotRepeat: function handleDownloadNotRepeat() {\n var _this6 = this;\n\n this.listLoading = true;\n this.$axios.posts("/api/newjit/unknown-assembly/export-not-repeat", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this6.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this6.listLoading = false;\n });\n });\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.OnlineTimeValue = [];\n this.$refs[refName].resetFields();\n this.handleQuery();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1;\n this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /* 主页面添加总成按钮事件 */\n handleCreate: function handleCreate() {\n // this.$nextTick(() => {\n // this.$refs["formCount"].resetFields();\n // });\n if (this.multipleSelection.length !== 1) {\n this.$message({\n message: "必须选择一行",\n type: "warning"\n });\n return;\n } else {\n console.log(this.multipleSelection[0].id);\n console.log(this.multipleSelection[0].vin);\n this.formTitle = "添加总成";\n this.isEdit = false;\n this.form = {};\n this.leftRowTemp = [];\n this.rightRowTemp = [];\n this.assly = {};\n this.tempdetails = [];\n this.erpAssemblyCfgList = [];\n this.tempAssCfgList = [];\n this.asTemp = [];\n this.getUnknownAssemblyList();\n this.getZcCode();\n this.getvehicleModel();\n this.dialogFormVisible = true;\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this7 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0]; //this.OnlineTimeValue\n // ? this.OnlineTimeValue[0] || ""\n // : "";\n\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1]; //this.OnlineTimeValue\n // ? this.OnlineTimeValue[1] || ""\n // : "";\n }\n\n this.$axios.gets("/api/newjit/unknown-assembly/list", this.listQuery).then(function (response) {\n _this7.list = response.items;\n _this7.totalCount = response.totalCount;\n console.log("未知总成" + JSON.stringify(_this7.listQuery));\n setTimeout(function () {\n //大数据量加载时\n _this7.listLoading = false;\n }, 500);\n }).catch(function () {\n _this7.listLoading = false;\n });\n },\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n //this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n\n /* 获取车型数据源 */\n getCarModel: function getCarModel() {\n var _this8 = this;\n\n this.$axios.gets("/api/newjit/dic/list" + "?dicTypeName=车型").then(function (response) {\n console.log("this is response.items", response.item);\n _this8.carModels = response.item;\n setTimeout(function () {\n //大数据量加载时\n _this8.listLoading = false;\n }, 500);\n }).catch(function () {\n _this8.listLoading = false;\n }); //console.log("this is carModels",this.carModels);\n },\n\n /* 加号按钮添加事件 */\n addzc: function addzc() {\n //todo 添加总成左侧的 加号按钮 待做\n alert("1");\n },\n\n /* 减号按钮删除事件 */\n delzc: function delzc(index) {\n this.erpAssemblyCfgList.splice(index, 1);\n console.log(this.erpAssemblyCfgList);\n },\n\n /* 添加总成最终提交的数据事件*/\n save: function save() {\n var _this9 = this;\n\n //if(this.data2.length ===0){\n if (this.data2.length !== 0) {\n this.$message({\n message: "还有结算价代码尚未匹配",\n type: "error"\n });\n return;\n }\n\n this.formLoading = true;\n var lastSubmit = {\n billId: this.listUnknownAssemblyQuery.billId,\n scanPoint: "M100",\n erpAssemblyCfgList: []\n };\n lastSubmit.erpAssemblyCfgList = this.tempAssCfgList; //#region\n // var lastSubmitt = [];\n // console.log("flag")\n // this.tempAssCfgList.forEach(element => {\n // element.details.forEach(element1 => {\n // lastSubmitt.push({\n // erpAssemblyCode: element.erpAssemblyCode,\n // erpAssemblyName: element.erpAssemblyName,\n // isCover: false,\n // previousVersionId:"f7d45dba-3164-4a91-b477-3c568c81e6a0",\n // vehicleModel: element.vehicleModel,\n // details:{\n // partCode:element1.partCode,\n // partNum:element1.partNum,\n // description:element1.description,\n // isKey: true,\n // }\n // })\n // });\n // });\n // console.log("this is lastSubmitt:",lastSubmitt)\n // var lastSubmit = [];\n // lastSubmitt.forEach(element => {\n // lastSubmit.push({\n // billID:this.listUnknownAssemblyQuery.billId,\n // scanPoint: "M100",\n // erpAssemblyCfgList:[{\n // erpAssemblyCode: element.erpAssemblyCode,\n // erpAssemblyName: element.erpAssemblyName,\n // isCover: false,\n // previousVersionId: null,\n // vehicleModel: element.vehicleModel,\n // details:element.details\n // }]\n // })\n // });\n // console.log("this is lastSubmit:",lastSubmit)\n //#endregion\n\n this.$axios.posts("/api/newjit/unknown-assembly/add-assembly", lastSubmit).then(function (response) {\n if (response.status === true) {\n _this9.dialogFormVisible = false;\n _this9.leftRowTemp = [];\n _this9.rightRowTemp = [];\n _this9.tempAssCfgList = [];\n _this9.tempdetails = [];\n _this9.erpAssemblyCfgList = [];\n _this9.asTemp = [];\n\n _this9.$notify({\n title: "成功",\n message: "添加总成成功!",\n type: "success",\n duration: 2000\n });\n }\n }).catch(function () {//this.listLoading = false;\n }); // }\n // else{\n // alert("未知零件未分配完,请确认!")\n // }\n },\n\n /* 获取未知总成零件数据源 */\n getUnknownAssemblyList: function getUnknownAssemblyList() {\n var _this10 = this;\n\n this.listUnknownAssemblyQuery.billId = this.multipleSelection[0].id; //console.log(this.listUnknownAssemblyQuery);\n\n this.$axios.gets("/api/newjit/unknown-assembly/" + this.listUnknownAssemblyQuery.billId).then(function (response) {\n _this10.data2 = response.item.unknownAssemblyParts.filter(function (u) {\n return u.partType === "1" || u.partType === null;\n });\n setTimeout(function () {\n //大数据量加载时\n _this10.listLoading = false;\n }, 500);\n }).catch(function () {\n _this10.listLoading = false;\n });\n },\n\n /* 获取总成零件数据源*/\n getZcCode: function getZcCode() {\n var _this11 = this;\n\n this.zcCode = [];\n this.listUnknownAssemblyQuery.vin = this.multipleSelection[0].vin; //console.log(this.listUnknownAssemblyQuery.vin);\n\n this.$axios.gets("/api/newjit/unknown-assembly/get-erp-assembly-code" + "?vin=" + this.listUnknownAssemblyQuery.vin).then(function (response) {\n console.log(response.item);\n\n if (response.item.length !== 0) {\n console.log("has no ASSCode");\n } else {\n response.item.forEach(function (zccode) {\n _this11.erpAssemblyCfgList.push({\n erpAssemblyCode: zccode,\n erpAssemblyName: [],\n isCover: false,\n carModel: "",\n previousVersionId: null,\n details: [{\n partCode: "",\n partNum: 0,\n description: "",\n isKey: false\n }]\n });\n });\n }\n\n setTimeout(function () {\n //大数据量加载时\n _this11.listLoading = false;\n }, 500);\n });\n },\n\n /* 添加总成提交方法 */\n submitAssyForm: function submitAssyForm(formName) {\n var _this12 = this;\n\n this.$refs[formName].validate(function (valid) {\n if (valid) {\n if (_this12.assly.erpAssemblyCode !== "") {\n _this12.erpAssemblyCfgList.push({\n erpAssemblyCode: _this12.assly.erpAssemblyCode,\n erpAssemblyName: _this12.assly.erpAssemblyName,\n carModel: _this12.assly.carModel,\n isCover: false,\n previousVersionId: null,\n details: []\n });\n\n console.log(_this12.erpAssemblyCfgList);\n _this12.assly.erpAssemblyCode = "";\n _this12.assly.erpAssemblyName = "";\n _this12.assly.carModel = "";\n } else {\n alert("请先填写Erp总成信息!");\n }\n } else {\n console.log("error submit!!");\n return false;\n }\n });\n },\n btnleftclick: function btnleftclick() {\n var _this13 = this;\n\n if (this.asTemp.length === 0) {\n alert("请先选择总成编号!");\n } else {\n if (this.rightRowTemp.length === 0) {\n alert("请先选择需移动的零件");\n } else if (this.rightRowTemp.length === 1 && parseInt(this.rightRowTemp[0].partNum) !== 1) {\n this.numFormData.num = parseInt(this.rightRowTemp[0].partNum);\n this.dialogNumVisible = true;\n this.numTitle = "输入移动结算件数量";\n } else {\n console.log("R->F");\n this.rightRowTemp.forEach(function (item) {\n _this13.numFormData.num = item.partNum; //if(this.numFormData.num <= item.partNum && this.numFormData.num > 0){\n //数据插入最终缓存\n\n if (_this13.tempAssCfgList.length !== 0) {\n console.log("second");\n\n var rfMove = _this13.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this13.asTemp[0].erpAssemblyCode;\n });\n\n if (rfMove.length !== 0) {\n var sameDetail = rfMove[0].details.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (sameDetail.length !== 0) {\n sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(_this13.numFormData.num);\n } else {\n rfMove[0].details.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n });\n }\n } else {\n console.log("加进去了");\n\n _this13.tempAssCfgList.push({\n erpAssemblyCode: _this13.asTemp[0].erpAssemblyCode,\n erpAssemblyName: _this13.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: _this13.asTemp[0].previousVersionId,\n vehicleModel: _this13.asTemp[0].carModel,\n details: [{\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n } else {\n console.log("first");\n\n _this13.tempAssCfgList.push({\n erpAssemblyCode: _this13.asTemp[0].erpAssemblyCode,\n erpAssemblyName: _this13.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: _this13.asTemp[0].previousVersionId,\n details: [{\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n\n console.log("this is tempAssCfgList 最终数据", _this13.tempAssCfgList); //数据插入中间数据源\n\n var judge = _this13.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(_this13.numFormData.num);\n _this13.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = t;\n } else {\n _this13.tempdetails.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: parseInt(_this13.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 右侧数据移动 */\n\n\n var delid = _this13.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0];\n\n var n1 = parseInt(_this13.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n _this13.data2 = _this13.data2.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n _this13.rightRowTemp = [];\n } else {\n _this13.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = delid.partNum - _this13.numFormData.num;\n item.partNum = n2 - n1;\n }\n }); //}\n }\n }\n },\n btnrightclick: function btnrightclick() {\n var _this14 = this;\n\n if (this.asTemp.length === 0) {\n alert("请先选择总成编号!");\n } else {\n if (this.leftRowTemp.length === 0) {\n alert("请先选择需移动的零件");\n } else if (this.leftRowTemp.length === 1 && parseInt(this.leftRowTemp[0].partNum) !== 1) {\n this.numFormData.num = parseInt(this.leftRowTempnpm[0].partNum);\n this.dialogNumVisible = true;\n this.numTitle = "输入移动结算件数量";\n } else {\n console.log("F->R");\n this.leftRowTemp.forEach(function (item) {\n _this14.numFormData.num = item.partNum; //if(this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0){\n //数据插入最终缓存\n\n console.log("移除或删除");\n\n var frMove = _this14.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this14.asTemp[0].erpAssemblyCode;\n });\n\n var samedetail = frMove[0].details.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (samedetail.length !== 0) {\n if (parseInt(samedetail[0].partNum) === parseInt(_this14.numFormData.num)) {\n frMove[0].details = frMove[0].details.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n } else {\n samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(_this14.numFormData.num);\n }\n } else if (samedetail.length !== 0) {\n alert("没有数据!");\n }\n\n console.log("this is tempAssCfgList 最终数据", _this14.tempAssCfgList); //数据插入右侧数据源\n\n var judge = _this14.data2.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(_this14.numFormData.num);\n _this14.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = t;\n } else {\n _this14.data2.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: parseInt(_this14.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 中间数据移动 */\n\n\n var delid = _this14.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0];\n\n console.log(_this14.tempdetails);\n var n1 = parseInt(_this14.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n _this14.tempdetails = _this14.tempdetails.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n _this14.leftRowTemp = [];\n } else {\n _this14.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = parseInt(delid.partNum) - parseInt(_this14.numFormData.num);\n item.partNum = n2 - n1;\n } //}\n\n });\n }\n }\n },\n\n /* 保存数量事件 */\n saveNum: function saveNum() {\n var _this15 = this;\n\n if (this.asTemp.length !== 0) {\n //判断中间选中移动还是右侧选中移动\n\n /* 左侧移动到右侧 */\n if (this.leftRowTemp.length !== 0) {\n console.log("F->R");\n\n if (this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0) {\n //数据插入最终缓存\n console.log("移除或删除");\n var frMove = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this15.asTemp[0].erpAssemblyCode;\n });\n var samedetail = frMove[0].details.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n });\n\n if (samedetail.length !== 0) {\n if (parseInt(samedetail[0].partNum) === parseInt(this.numFormData.num)) {\n frMove[0].details = frMove[0].details.filter(function (u) {\n return u.partCode !== _this15.leftRowTemp[0].partCode;\n });\n } else {\n samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(this.numFormData.num);\n }\n } else if (samedetail.length !== 0) {\n alert("没有数据!");\n }\n\n console.log("this is tempAssCfgList 最终数据", this.tempAssCfgList); //数据插入右侧数据源\n\n var judge = this.data2.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);\n this.data2.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0].partNum = t;\n } else {\n this.data2.push({\n description: this.leftRowTemp[0].description,\n isKey: false,\n partCode: this.leftRowTemp[0].partCode,\n partNum: parseInt(this.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 中间数据移动 */\n\n\n var delid = this.tempdetails.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0];\n var n1 = parseInt(this.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n this.tempdetails = this.tempdetails.filter(function (u) {\n return u.partCode !== _this15.leftRowTemp[0].partCode;\n });\n this.leftRowTemp = [];\n } else {\n this.tempdetails.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0].partNum = parseInt(delid.partNum) - parseInt(this.numFormData.num);\n this.leftRowTemp[0].partNum = n2 - n1;\n }\n } else if (this.numFormData.num == 0) {\n alert("输入数字不能为0!");\n } else {\n alert("输入不正确,请确认!");\n }\n } else if (this.rightRowTemp.length !== 0) {\n /* 右侧移动到左侧 */\n console.log("R->F");\n\n if (this.numFormData.num <= this.rightRowTemp[0].partNum && this.numFormData.num > 0) {\n //数据插入最终缓存\n if (this.tempAssCfgList.length !== 0) {\n console.log("second");\n var rfMove = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this15.asTemp[0].erpAssemblyCode;\n });\n\n if (rfMove.length !== 0) {\n var sameDetail = rfMove[0].details.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n });\n\n if (sameDetail.length !== 0) {\n sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(this.numFormData.num);\n } else {\n rfMove[0].details.push({\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n });\n }\n } else {\n console.log("加进去了");\n this.tempAssCfgList.push({\n erpAssemblyCode: this.asTemp[0].erpAssemblyCode,\n erpAssemblyName: this.asTemp[0].erpAssemblyName,\n vehicleModel: this.asTemp[0].carModel,\n isCover: false,\n previousVersionId: this.asTemp[0].previousVersionId,\n details: [{\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n } else {\n console.log("first");\n this.tempAssCfgList.push({\n erpAssemblyCode: this.asTemp[0].erpAssemblyCode,\n erpAssemblyName: this.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: this.asTemp[0].previousVersionId,\n vehicleModel: this.asTemp[0].carModel,\n details: [{\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n\n console.log("this is tempAssCfgList 最终数据", this.tempAssCfgList); //数据插入中间数据源\n\n var judge = this.tempdetails.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);\n this.tempdetails.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n })[0].partNum = t;\n } else {\n this.tempdetails.push({\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: parseInt(this.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 右侧数据移动 */\n\n\n var delid = this.data2.filter(function (u) {\n return u.id === _this15.rightRowTemp[0].id;\n })[0];\n var n1 = parseInt(this.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n this.data2 = this.data2.filter(function (u) {\n return u.id !== _this15.rightRowTemp[0].id;\n });\n this.rightRowTemp = [];\n } else {\n this.data2.filter(function (u) {\n return u.id === _this15.rightRowTemp[0].id;\n })[0].partNum = delid.partNum - this.numFormData.num;\n this.rightRowTemp[0].partNum = n2 - n1;\n }\n } else if (this.numFormData.num == 0) {\n alert("输入数字不能为0!");\n } else {\n alert("输入不正确,请确认!");\n }\n }\n\n this.dialogNumVisible = false;\n } else {\n alert("请先选择总成编号!");\n }\n\n this.dialogNumVisible = false;\n },\n\n /* 总成编号选中事件 */\n rowClickass: function rowClickass(row) {\n var _this16 = this;\n\n this.asTemp = [];\n this.tempdetails = [];\n this.$refs.asTable.clearSelection();\n this.$refs.asTable.toggleRowSelection(row);\n this.asTemp.push(row);\n\n if (this.asTemp[0].details.length !== 0) {\n //选中插入中间数据源\n this.tempdetails.push({\n isKey: false,\n partCode: this.asTemp[0].details[0].partCode,\n partNum: this.asTemp[0].details[0].partNum,\n vehicleModel: this.asTemp[0].details[0].carModel\n });\n } //二次选中插入最终提交中的details\n\n\n var judgeSec = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this16.asTemp[0].erpAssemblyCode;\n });\n console.log("this is judgeSec:", judgeSec);\n\n if (judgeSec.length !== 0) {\n console.log("this is judgeSec[0].details:", judgeSec[0].details);\n judgeSec[0].details.forEach(function (element) {\n _this16.tempdetails.push(element);\n });\n }\n\n console.log("this is this.tempdetails", this.tempdetails);\n console.log("this is asTemp", this.asTemp);\n },\n\n /* 总成编号复选框单选事件 */\n selectAss: function selectAss(selection, row) {\n var _this17 = this;\n\n this.asTemp = []; //清空已选\n\n this.tempdetails = [];\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // 选择项大于1时\n\n if (selection.length > 1) {\n var del_row = selection.shift(); // console.log(\'把数组的第一个元素从其中删除后\', selection);\n\n this.$refs.asTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n }\n\n this.asTemp.push(selection[0]);\n console.log("当用户手动勾选数据行", this.asTemp);\n\n if (this.asTemp[0].details.length !== 0) {\n //选中插入中间数据源\n this.tempdetails.push({\n isKey: false,\n partCode: this.asTemp[0].details[0].partCode,\n partNum: this.asTemp[0].details[0].partNum,\n vehicleModel: this.asTemp[0].details[0].carModel\n });\n } //二次选中插入最终提交中的details\n\n\n var judgeSec = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this17.asTemp[0].erpAssemblyCode;\n });\n console.log("this is judgeSec:", judgeSec);\n\n if (judgeSec.length !== 0) {\n console.log("this is judgeSec[0].details:", judgeSec[0].details);\n judgeSec[0].details.forEach(function (element) {\n _this17.tempdetails.push(element);\n });\n }\n\n console.log("this is this.tempdetails", this.tempdetails);\n console.log("this is asTemp", this.asTemp);\n },\n\n /* 右侧数据选中事件 */\n rowClickRight: function rowClickRight(row) {\n this.rightRowTemp = [];\n this.$refs.rightTable.clearSelection();\n this.$refs.rightTable.toggleRowSelection(row);\n this.rightRowTemp.push(row);\n },\n\n /* 左侧数据选中事件 */\n rowClickLeft: function rowClickLeft(row) {\n this.leftRowTemp = [];\n this.$refs.leftTable.clearSelection();\n this.$refs.leftTable.toggleRowSelection(row);\n this.leftRowTemp.push(row);\n },\n\n /* 右侧复选框单选事件 */\n selectRight: function selectRight(selection, row) {\n var _this18 = this;\n\n this.rightRowTemp = []; //清空已选\n\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // 选择项大于1时\n // if (selection.length > 1) {\n // let del_row = selection.shift();\n // // console.log(\'把数组的第一个元素从其中删除后\', selection);\n // this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n // }\n\n selection.forEach(function (item) {\n _this18.rightRowTemp.push(item);\n });\n console.log("当用户手动勾选数据行", this.rightRowTemp);\n },\n\n /* 右侧复选框全选事件 */\n selectRightAll: function selectRightAll(selection) {\n var _this19 = this;\n\n this.rightRowTemp = []; //清空已选\n\n console.log("当用户手动勾选全选 Checkbox 时触发的事件", selection);\n selection.forEach(function (item) {\n _this19.rightRowTemp.push(item);\n });\n console.log("当用户手动勾选全选", this.rightRowTemp);\n },\n\n /* 左侧复选框单选事件 */\n selectLeft: function selectLeft(selection, row) {\n var _this20 = this;\n\n this.leftRowTemp = []; //清空已选\n\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // // 选择项大于1时\n // if (selection.length > 1) {\n // let del_row = selection.shift();\n // // console.log(\'把数组的第一个元素从其中删除后\', selection);\n // this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n // }\n\n selection.forEach(function (item) {\n _this20.leftRowTemp.push(item);\n });\n console.log("当用户手动勾选数据行", this.leftRowTemp);\n },\n\n /* 左侧复选框全选事件 */\n selectLeftAll: function selectLeftAll(selection) {\n var _this21 = this;\n\n this.leftRowTemp = []; //清空已选\n\n console.log("当用户手动勾选全选 Checkbox 时触发的事件", selection);\n selection.forEach(function (item) {\n _this21.leftRowTemp.push(item);\n });\n console.log("当用户手动勾选全选", this.leftRowTemp);\n },\n getvehicleModel: function getvehicleModel() {\n var _this22 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this22.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n valueselectChange: function valueselectChange() {}\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_unknownAssemblyvue_type_script_lang_js_ = (unknownAssemblyvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=style&index=0&id=6bf68050&lang=scss&scoped=true&\nvar unknownAssemblyvue_type_style_index_0_id_6bf68050_lang_scss_scoped_true_ = __webpack_require__("5e2f");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar unknownAssembly_component = Object(componentNormalizer["a" /* default */])(\n basedate_unknownAssemblyvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "6bf68050",\n null\n \n)\n\n/* harmony default export */ var unknownAssembly = __webpack_exports__["default"] = (unknownAssembly_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/NjA3MCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzA0OTAiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvdW5rbm93bkFzc2VtYmx5L2RldGFpbC52dWU/NThhYyIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzc1MGMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS91bmtub3duQXNzZW1ibHkvZGV0YWlsLnZ1ZT80ZjgwIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/Y2M3NSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/MTIyMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/MDZhYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEJBQTBCLGFBQWEsMEJBQTBCLHdCQUF3QixpQkFBaUIsOEJBQThCLFlBQVksVUFBVSxnQkFBZ0IsNkJBQTZCLGdCQUFnQixhQUFhLDRFQUE0RSx5QkFBeUIscUNBQXFDLHFCQUFxQixPQUFPLGtDQUFrQyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSwrQ0FBK0MsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSx3REFBd0QseUNBQXlDLGtDQUFrQyx5QkFBeUIsT0FBTyw2QkFBNkIsaUJBQWlCLGFBQWEsZ0JBQWdCLFFBQVEsK0NBQStDLFdBQVcseUJB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ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2Rpdicse3JlZjpcImJveFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9LFtfYygnZWwtZm9ybScse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnNob3dTZWFyY2gpLGV4cHJlc3Npb246XCJzaG93U2VhcmNoXCJ9XSxyZWY6XCJxdWVyeUZvcm1cIixhdHRyczp7XCJtb2RlbFwiOl92bS5saXN0UXVlcnksXCJpbmxpbmVcIjp0cnVlfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiS05SOlwiLFwicHJvcFwiOlwiS05SQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuS05SQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIktOUkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuS05SQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJLTlJFbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuS05SRW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJLTlJFbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5LTlJFbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLlupXnm5jlj7c6XCIsXCJwcm9wXCI6XCJWSU5CZWdpblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WSU5CZWdpbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVklOQmVnaW5cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WSU5CZWdpblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIi1cIixcInByb3BcIjpcIlZJTkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WSU5FbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZJTkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZJTkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIui9puWei+S7o+eggVwiLFwicHJvcFwiOlwiVmVoaWNsZU1vZGVsQ29kZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0udmFsdWVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkudmVoaWNsZU1vZGVsQ29kZVwifX0sX3ZtLl9sKChfdm0udmVoaWNsZU1vZGVsTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0uZGljSXRlbU5hbWUsXCJ2YWx1ZVwiOml0ZW0uZGljSXRlbUNvZGV9fSl9KSwxKV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLniYjmnKxcIixcInByb3BcIjpcIlZlcnNpb25cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeeJiOacrFwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVmVyc2lvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVmVyc2lvblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZlcnNpb25cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLkuIrnur/ml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzgwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwidHlwZVwiOlwiZGF0ZXRpbWVyYW5nZVwiLFwiZGVmYXVsdC10aW1lXCI6WycwMDowMDowMCcsICcyMzo1OTo1OSddLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KF92bS5PbmxpbmVUaW1lVmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uT25saW5lVGltZVZhbHVlPSQkdn0sZXhwcmVzc2lvbjpcIk9ubGluZVRpbWVWYWx1ZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcImxvYWRpbmdcIjpfdm0uYnV0dG9uTG9hZGluZ30sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlVXBkYXRlKCl9fX0sW192bS5fdihcIumHjeaWsOino+aekCjmibnph4/mk43kvZwpIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiYWRkQXNzeVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tcGx1c1wifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDcmVhdGV9fSxbX3ZtLl92KFwi5re75Yqg5oC75oiQIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaJq+aPj+eCuVwiLFwicHJvcFwiOlwiU2NhblBvaW50XCJ9fSxbX2MoJ2VsLXNlbGVjdCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyMDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJjbGVhcmFibGVcIjpcIlwifSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuU2NhblBvaW50KSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJTY2FuUG9pbnRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5TY2FuUG9pbnRcIn19LF92bS5fbCgoX3ZtLlNjYW5Qb2ludExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLmlkfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCIxNXB4XCJ9LGF0dHJzOntcInR5cGVcIjpcIndhcm5pbmdcIixcInBsYWluXCI6XCJcIixcImljb25cIjpcImVsLWljb24tZG93bmxvYWRcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlRG93bmxvYWROb3RSZXBlYXQoKX19fSxbX3ZtLl92KFwi5a+85Ye6KOS4jemHjeWkjSkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJwbGFpblwiOlwiXCIsXCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJzdWNjZXNzXCIsXCJpY29uXCI6XCJlbC1pY29uLWNoZWNrXCIsXCJsb2FkaW5nXCI6X3ZtLmJ1dHRvbjJMb2FkaW5nfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVVcGRhdGVBbGwoKX19fSxbX3ZtLl92KFwi6YeN5paw6Kej5p6QKOaJp+ihjOWFqOmDqCkgXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIixcIm1hcmdpbi10b3BcIjpcIi0yNXB4XCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwic2VsZWN0aW9uXCIsXCJ3aWR0aFwiOlwiNDRweFwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3XCIsXCJwcm9wXCI6XCJob3N0U05cIixcInNvcnRhYmxlXCI6XCJcIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxMTBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cuaG9zdFNOKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJcIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMildLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInRhYmxlLWZvb3RlclwifSxbX2MoJ3BhZ2luYXRpb24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS50b3RhbENvdW50ID4gMCksZXhwcmVzc2lvbjpcInRvdGFsQ291bnQgPiAwXCJ9XSxhdHRyczp7XCJ0b3RhbFwiOl92bS50b3RhbENvdW50LFwicGFnZVwiOl92bS5wYWdlLFwibGltaXRcIjpfdm0ubGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50fSxvbjp7XCJ1cGRhdGU6cGFnZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnBhZ2U9JGV2ZW50fSxcInVwZGF0ZTpsaW1pdFwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS4kc2V0KF92bS5saXN0UXVlcnksIFwiTWF4UmVzdWx0Q291bnRcIiwgJGV2ZW50KX0sXCJwYWdpbmF0aW9uXCI6X3ZtLmdldExpc3R9fSksX2MoJ2VsLWRyYXdlcicse2F0dHJzOntcInRpdGxlXCI6XCLkv6Hmga/or6bnu4bpobVcIixcInNpemVcIjpcIjc1JVwiLFwiZGlyZWN0aW9uXCI6XCJydGxcIixcInZpc2libGVcIjpfdm0uZHJhd2VyLFwiYmVmb3JlLWNsb3NlXCI6X3ZtLmhhbmRsZURyYXdlckNsb3NlfSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRyYXdlcj0kZXZlbnR9fX0sW19jKCdkaXYnLFtfYygnRGV0YWlsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXRvcFwiOlwiLTM1cHhcIn0sYXR0cnM6e1wiY3VzdG9tZXJJbmZvc1wiOl92bS5jdXN0b21lckluZm9zfX0pXSwxKV0pXSwxKSxfYygnZWwtZGlhbG9nJyx7YXR0cnM6e1widmlzaWJsZVwiOl92bS5kaWFsb2dGb3JtVmlzaWJsZSxcImNsb3NlLW9uLWNsaWNrLW1vZGFsXCI6ZmFsc2UsXCJ0aXRsZVwiOl92bS5mb3JtVGl0bGUsXCJhcHBlbmQtdG8tYm9keVwiOlwiXCIsXCJ3aWR0aFwiOlwiMTAwMHB4XCJ9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nRm9ybVZpc2libGU9JGV2ZW50fX19LFtfYygnZGl2Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjk4MHB4XCIsXCJoZWlnaHRcIjpcIjYwMHB4XCJ9fSxbX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZGl2Jyx7c3RhdGljU3R5bGU6e1wiYm9yZGVyXCI6XCIxcHhcIixcIndpZHRoXCI6XCIyODBweFwifX0sW19jKCdlbC1yb3cnLFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJhcHBcIn0sW19jKCdlbC10YWJsZScse3JlZjpcImFzVGFibGVcIixzdGF0aWNTdHlsZTp7XCJtYXJnaW5cIjpcIjBweFwiLFwid2lkdGhcIjpcIjI4MHB4XCJ9LGF0dHJzOntcImJvcmRlclwiOlwiXCIsXCJoZWlnaHRcIjpcIjI2MHB4XCIsXCJkYXRhXCI6X3ZtLmVycEFzc2VtYmx5Q2ZnTGlzdCxcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInJvdy1jbGlja1wiOl92bS5yb3dDbGlja2FzcyxcInNlbGVjdFwiOl92bS5zZWxlY3RBc3N9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInR5cGVcIjpcInNlbGVjdGlvblwiLFwid2lkdGhcIjpcIjQwcHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZXJwQXNzZW1ibHlDb2RlXCIsXCJsYWJlbFwiOlwi5oC75oiQ57yW5Y+3XCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJ3aWR0aFwiOlwiMTc4cHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wiYWxpZ25cIjpcImNlbnRlclwiLFwid2lkdGhcIjpcIjYxcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJzaXplXCI6XCJtaW5pXCIsXCJhbGlnblwiOlwibGVmdFwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5kZWx6YyhzY29wZS4kaW5kZXgsIHNjb3BlLnJvdyl9fX0pXX19XSl9KV0sMSldLDEpXSksX2MoJ2VsLXJvdycsW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjgwcHhcIixcImJvcmRlclwiOlwiMXB4XCJ9fSxbX2MoJ2VsLWRpdmlkZXInLHthdHRyczp7XCJjb250ZW50LXBvc2l0aW9uXCI6XCJjZW50ZXJcIn19LFtfdm0uX3YoXCLmt7vliqBFcnDmgLvmiJBcIildKSxfYygnZWwtZm9ybScse3JlZjpcImFzc2x5XCIsc3RhdGljU3R5bGU6e1wiYm9yZGVyXCI6XCIxcHhcIn0sYXR0cnM6e1wibGFiZWwtcG9zaXRpb25cIjpfdm0ubGFiZWxQb3NpdGlvbixcImxhYmVsLXdpZHRoXCI6XCIxMDBweFwiLFwibW9kZWxcIjpfdm0uYXNzbHksXCJib3JkZXJcIjpcIlwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIixcIndpZHRoXCI6XCIyODBweFwifSxhdHRyczp7XCJsYWJlbFwiOlwiRXJw5oC75oiQ57yW56CBXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaVFcnDmgLvmiJDnvJbnoIFcIn0sbW9kZWw6e3ZhbHVlOihfdm0uYXNzbHkuZXJwQXNzZW1ibHlDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmFzc2x5LCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuZXJwQXNzZW1ibHlDb2RlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIixcIndpZHRoXCI6XCIyODBweFwifSxhdHRyczp7XCJsYWJlbFwiOlwiRXJw5oC75oiQ5ZCN56ewXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaVFcnDmgLvmiJDlkI3np7BcIn0sbW9kZWw6e3ZhbHVlOihfdm0uYXNzbHkuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmFzc2x5LCBcImVycEFzc2VtYmx5TmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuZXJwQXNzZW1ibHlOYW1lXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIn0sYXR0cnM6e1wibGFiZWxcIjpcIui9puWei1wifX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqei9puWei1wifSxtb2RlbDp7dmFsdWU6KF92bS5hc3NseS5jYXJNb2RlbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5hc3NseSwgXCJjYXJNb2RlbFwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuY2FyTW9kZWxcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5zdWJtaXRBc3N5Rm9ybSgnYXNzbHknKX19fSxbX3ZtLl92KFwi5re75YqgXCIpXSldLDEpXSwxKV0sMSldKV0sMSldKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjd9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4XCIsXCJoZWlnaHRcIjpcIjU3MHB4XCIsXCJ3aWR0aFwiOlwiMjcwcHhcIn19LFtfYygnZWwtdGFibGUnLHtyZWY6XCJsZWZ0VGFibGVcIixhdHRyczp7XCJkYXRhXCI6X3ZtLnRlbXBkZXRhaWxzLFwiaGVpZ2h0XCI6XCI1NTBcIixcInN0cmlwZVwiOlwiXCIsXCJib3JkZXJcIjpcIlwiLFwiaGlnaGxpZ2h0LWN1cnJlbnQtcm93XCI6XCJcIn0sb246e1wicm93LWNsaWNrXCI6X3ZtLnJvd0NsaWNrTGVmdCxcInNlbGVjdFwiOl92bS5zZWxlY3RMZWZ0LFwic2VsZWN0LWFsbFwiOl92bS5zZWxlY3RMZWZ0QWxsfX0sW19jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJ0eXBlXCI6XCJzZWxlY3Rpb25cIixcIndpZHRoXCI6XCI0MHB4XCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi57uT566X5Lu25Luj56CBXCIsXCJ3aWR0aFwiOlwiMTUwcHhcIixcImFsaWduXCI6XCJjZW50ZXJcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwicGFydE51bVwiLFwibGFiZWxcIjpcIuaVsOmHj1wiLFwid2lkdGhcIjpcIjc4cHhcIixcImFsaWduXCI6XCJjZW50ZXJcIn19KV0sMSldLDEpXSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoyfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjU3MHB4XCIsXCJ3aWR0aFwiOlwiNzBweFwifSxhdHRyczp7XCJhbGlnblwiOlwiY2VudGVyXCJ9fSxbX2MoJ2VsLXJvdycse3N0YXRpY1N0eWxlOntcImxpbmUtaGVpZ2h0XCI6XCIzMDBweFwifX0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLWNhcmV0LWxlZnRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uYnRubGVmdGNsaWNrKCl9fX0pXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tY2FyZXQtcmlnaHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uYnRucmlnaHRjbGljaygpfX19KV0sMSldLDEpXSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo3fX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJib3JkZXJcIjpcIjFweFwiLFwiaGVpZ2h0XCI6XCI1NzBweFwiLFwid2lkdGhcIjpcIjI3MHB4XCJ9fSxbX2MoJ2VsLXRhYmxlJyx7cmVmOlwicmlnaHRUYWJsZVwiLGF0dHJzOntcImRhdGFcIjpfdm0uZGF0YTIsXCJoZWlnaHRcIjpcIjU1MFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJyb3ctY2xpY2tcIjpfdm0ucm93Q2xpY2tSaWdodCxcInNlbGVjdFwiOl92bS5zZWxlY3RSaWdodCxcInNlbGVjdC1hbGxcIjpfdm0uc2VsZWN0UmlnaHRBbGx9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInR5cGVcIjpcInNlbGVjdGlvblwiLFwid2lkdGhcIjpcIjQwcHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwicGFydENvZGVcIixcImxhYmVsXCI6XCLnu5Pnrpfku7bku6PnoIFcIixcIndpZHRoXCI6XCIxNTBweFwiLFwiYWxpZ25cIjpcImNlbnRlclwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0TnVtXCIsXCJsYWJlbFwiOlwi5pWw6YePXCIsXCJ3aWR0aFwiOlwiNzhweFwiLFwiYWxpZ25cIjpcImNlbnRlclwifX0pXSwxKV0sMSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGlhbG9nLWZvb3RlclwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI5NTBweFwifSxhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIixcImFsaWduXCI6XCJyaWdodFwifSxzbG90OlwiZm9vdGVyXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1wibG9hZGluZ1wiOl92bS5mb3JtTG9hZGluZyxcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uc2F2ZX19LFtfdm0uX3YoXCLnoa7orqRcIildKV0sMSldLDEpXSksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nTnVtVmlzaWJsZSxcImNsb3NlLW9uLWNsaWNrLW1vZGFsXCI6ZmFsc2UsXCJ0aXRsZVwiOl92bS5udW1UaXRsZSxcImFwcGVuZC10by1ib2R5XCI6XCJcIixcIndpZHRoXCI6XCI1NzBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ051bVZpc2libGU9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ2VsLWZvcm0nLHtyZWY6XCJudW1Gb3JtRGF0YVwiLHN0YXRpY0NsYXNzOlwibnVtLXJ1bGVGb3JtXCIsYXR0cnM6e1wibW9kZWxcIjpfdm0ubnVtRm9ybURhdGEsXCJsYWJlbC13aWR0aFwiOlwiMTAwcHhcIn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaVsOmHj1wiLFwicHJvcFwiOlwibnVtXCIsXCJydWxlc1wiOlt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5pWw6YeP5LiN6IO95Li656m65LiU6Iez5bCR5Li6MScgfV19fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxtb2RlbDp7dmFsdWU6KF92bS5udW1Gb3JtRGF0YS5udW0pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubnVtRm9ybURhdGEsIFwibnVtXCIsICQkdil9LGV4cHJlc3Npb246XCJudW1Gb3JtRGF0YS5udW1cIn19KV0sMSldLDEpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJsb2FkaW5nXCI6X3ZtLmZvcm1Mb2FkaW5nLFwidHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5zYXZlTnVtKCl9fX0sW192bS5fdihcIuehruiupFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlfX19LFtfdm0uX3YoXCLlj5bmtohcIildKV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLFtfYygndGFibGUnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiOTklXCJ9fSxbX2MoJ3RyJyxbX2MoJ3RkJyxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bku6PnoIFcIixcInByb3BcIjpcInBhcnRDb2RlIFwiLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwid2lkdGhcIjpcIjIyMHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnc3BhbicsW192bS5fdihfdm0uX3Moc2NvcGUucm93LnBhcnRDb2RlKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMildLDEpXSldKSxfYygndHInLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjIwcHhcIn19LFtfYygndGQnLFtfYygnZGl2Jyx7YXR0cnM6e1wiYWxpZ25cIjpcImNlbnRlclwifX0sW192bS5fdihcIuWFsVwiK192bS5fcyhfdm0ucGFnZWNvdW50KStcIuadoeaVsOaNrlwiKV0pXSldKV0pXSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjwhLS3mnKrnn6XmgLvmiJAt5piO57uG5pWw5o2uLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDk5JVwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgICAgICAgICA8IS0t6KGo5qC85riy5p+TLS0+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgIHJlZj1cIm11bHRpcGxlVGFibGVcIlxyXG4gICAgICAgICAgICAgIHYtbG9hZGluZz1cImxpc3RMb2FkaW5nXCJcclxuICAgICAgICAgICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgICAgICAgICAgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3ItdGFibGVcIlxyXG4gICAgICAgICAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgICAgICAgICAgOmhlaWdodD1cInRhYmxlSGVpZ2h0XCJcclxuICAgICAgICAgICAgICA6Y2VsbC1zdHlsZT1cImNlbGxTdHlsZVwiXHJcbiAgICAgICAgICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3RyaXBlXHJcbiAgICAgICAgICAgICAgYm9yZGVyXHJcbiAgICAgICAgICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJVwiXHJcbiAgICAgICAgICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgICAgICAgICAgQHNlbGVjdGlvbi1jaGFuZ2U9XCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJoYW5kbGVSb3dDbGlja1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8IS0tIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiXHJcbiAgICAgICAgICAgICAgICBwcm9wPVwicGFydENvZGUgXCJcclxuICAgICAgICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjIwcHhcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2NvcGUucm93LnBhcnRDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gZ2V0RGVmYXVsdEZpZWxkXCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICA6cHJvcD1cIml0ZW0ucHJvcFwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgIDptaW4td2lkdGg9XCJpdGVtLndpZHRoXCJcclxuICAgICAgICAgICAgICAgIDpmb3JtYXR0ZXI9XCJmaWVsZEZvcm1hdHRlclwiXHJcbiAgICAgICAgICAgICAgICBzb3J0YWJsZT1cImN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICAgICAgICAgIDpndXR0ZXI9XCIwXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBzY29wZS5jb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG5cclxuICAgICAgPHRyIHN0eWxlPVwiaGVpZ2h0OiAyMHB4XCI+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGRpdiBhbGlnbj1cImNlbnRlclwiPuWFsXt7IHBhZ2Vjb3VudCB9feadoeaVsOaNrjwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7IC8vIHNlY29uZGFyeSBwYWNrYWdlIGJhc2VkIG9uIGVsLXBhZ2luYXRpb25cclxuaW1wb3J0IHBlcm1pc3Npb24gZnJvbSBcIkAvZGlyZWN0aXZlL3Blcm1pc3Npb24vaW5kZXguanNcIjtcclxuaW1wb3J0IENSTVRhYmxlSGVhZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DUk1UYWJsZUhlYWRcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWxcIjtcclxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcInJ1bmpzL2xpYi9jb21tb25cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcInNlbmRVbnNldHRsZWREaWZmUmVwb3J0XCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIHBhZ2Vjb3VudDogMCxcclxuICBwcm9wczoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JtVHlwZTogXCJzdG9ja0Zpc0RpZmZSZXBvcnRcIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICAvL+WJjeerr+WumuS5ieeahOinhOWIme+8jOWQjuerr+S5n+aciemqjOivgVxyXG4gICAgICAgIGVycE1hdGVyaWFsQ29kZTogW1xyXG4gICAgICAgICAgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogXCLlv4XpobvovpPlhaXvvIFcIiwgdHJpZ2dlcjogXCJibHVyXCIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICBzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgcGFyZW50SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZvcm06IHtcclxuICAgICAgICBkaWNEZXRhaWxJRDogXCJcIixcclxuICAgICAgICBjdXN0b21lcklkOiBcIlwiLFxyXG4gICAgICAgIHByb2plY3RJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgbGlzdDogbnVsbCxcclxuICAgICAgdG90YWxDb3VudDogMCxcclxuICAgICAgbGlzdExvYWRpbmc6IHRydWUsXHJcbiAgICAgIGZvcm1Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgLy8g6auY57qn5pCc57SiXHJcbiAgICAgIGZpbHRlck9iajoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbGlzdFF1ZXJ5OiB7XHJcbiAgICAgICAgRmlsdGVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgICAgY29sdW1uOiBcIkVuYWJsZWRcIixcclxuICAgICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgICB2YWx1ZTogXCJ0cnVlXCIsXHJcbiAgICAgICAgICB9LCAvL+m7mOiupOafpeivouWPr+eUqOeahFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBpZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMCAtIDUwLFxyXG4gICAgICBpc0VkaXQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgIGxldCBib3hIID0gdGhpcy4kcmVmcy5ib3gub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDY3IC0gNzkgLSA1MDsgLy81N+S4umZvb3RlcumrmOW6pu+8jDc55Li66aG16Z2i5LiK6YOo5qCH562+6auY5bqmXHJcbiAgICAgIC8vdGhpcy50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtMjYwXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzZWxmLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gMzAgLSA1MDtcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICBoYW5kbGVyKG5ld1ZhbCkge1xyXG4gICAgICAgIGlmIChuZXdWYWwgPT0gXCJcIiB8fCBuZXdWYWwgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgLy9UT0RPXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkID0gZWxlbWVudC5QYXJlbnRJZDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC8qKiDliJfooajlrZfmrrUgKi9cclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICAvL3RlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25Luj56CBXCIsIHByb3A6IFwicGFydENvZGUgXCIsIHdpZHRoOiAxMjAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogOTUgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5o+P6L+wXCIsIHByb3A6IFwiZGVzY3JpcHRpb25cIiwgd2lkdGg6IDI4MCB9KTtcclxuICAgICAgcmV0dXJuIHRlbXBzVGFicztcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Yi35paw5YiX6KGoICovXHJcbiAgICBoYW5kbGVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlICE9PSBcImVkaXRcIikge1xyXG4gICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgLy8gZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgIC8vICAgcmV0dXJuIHJvd1tjb2x1bW4ucHJvcGVydHldIHx8IFwiLS1cIjtcclxuICAgIC8vIH0sXHJcbiAgICBpbXBvcnRFeGNlbERhdGEoKSB7XHJcbiAgICAgIC8v5YWz6Zet5a+85YWl56qX5L2T5pe26LCD55SoXHJcbiAgICAgIHRoaXMuc2hvd0V4Y2VsSW1wb3J0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIGdldExpc3QoKSB7XHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuivpuihqOadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3Vua25vd24tYXNzZW1ibHkvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHM7XHJcbiAgICAgICAgICB0aGlzLnBhZ2Vjb3VudCA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHMubGVuZ3RoO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudO+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5wYWdlY291bnQpKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog562b6YCJ5pON5L2cICovXHJcbiAgICBoYW5kbGVGaWx0ZXIoKSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5GaWx0ZXJzID0gW107XHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaENvbnRlbnQgIT0gXCJcIikge1xyXG4gICAgICAgIHZhciBjb2x1bW4gPSBcInBhcnRDb2RlXCI7XHJcbiAgICAgICAgbGV0IGZpbHRlciA9IHtcclxuICAgICAgICAgIGxvZ2ljOiAwLFxyXG4gICAgICAgICAgY29sdW1uOiBjb2x1bW4sXHJcbiAgICAgICAgICBhY3Rpb246IDYsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zZWFyY2hDb250ZW50LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgcmVzZXRRdWVyeSgpIHt9LFxyXG5cclxuICAgIHNvcnRDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBjb25zdCB7IHByb3AsIG9yZGVyIH0gPSBkYXRhO1xyXG4gICAgICBpZiAoIXByb3AgfHwgIW9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5saXN0UXVlcnkuU29ydGluZyA9IHByb3AgKyBcIiBcIiArIG9yZGVyO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi2c3R5bGUgKi9cclxuICAgIGNlbGxTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICAvL3RoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcbi5lbC10YWJsZSAuY2VsbC5lbC10b29sdGlwIHtcclxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbn1cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTkzZTRjNjYmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTkzZTRjNjYmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI1OTNlNGM2NlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3mnKrnn6XmgLvmiJDnrqHnkIbpobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICAgIDxmbGV4Ym94IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgOm1vZGVsPVwibGlzdFF1ZXJ5XCJcclxuICAgICAgICAgIHJlZj1cInF1ZXJ5Rm9ybVwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICAgIDppbmxpbmU9XCJ0cnVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiS05SOlwiIHByb3A9XCJLTlJCZWdpblwiPlxyXG4gICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LktOUkJlZ2luXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIi1cIiBwcm9wPVwiS05SRW5kXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuS05SRW5kXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLlupXnm5jlj7c6XCIgcHJvcD1cIlZJTkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiLVwiIHByb3A9XCJWSU5FbmRcIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WSU5FbmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei+S7o+eggVwiIHByb3A9XCJWZWhpY2xlTW9kZWxDb2RlXCI+XHJcbiAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cInZhbHVlc2VsZWN0Q2hhbmdlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiB2ZWhpY2xlTW9kZWxMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uZGljSXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5kaWNJdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi54mI5pysXCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeeJiOacrFwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ9cIj5cclxuICAgICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cIk9ubGluZVRpbWVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzODBweFwiXHJcbiAgICAgICAgICAgICAgdmFsdWUtZm9ybWF0PVwieXl5eS1NTS1kZCBISDptbTpzc1wiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIlxyXG4gICAgICAgICAgICAgIDpkZWZhdWx0LXRpbWU9XCJbJzAwOjAwOjAwJywgJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgIHN0YXJ0LXBsYWNlaG9sZGVyPVwi5byA5aeL5pel5pyfXCJcclxuICAgICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgICA+PC9lbC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXBsdXNcIlxyXG4gICAgICAgICAgICAgIDpsb2FkaW5nPVwiYnV0dG9uTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlVXBkYXRlKClcIlxyXG4gICAgICAgICAgICAgID7ph43mlrDop6PmnpAo5om56YeP5pON5L2cKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImFkZEFzc3lcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tcGx1c1wiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ3JlYXRlXCJcclxuICAgICAgICAgICAgICA+5re75Yqg5oC75oiQXHJcbiAgICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuaJq+aPj+eCuVwiIHByb3A9XCJTY2FuUG9pbnRcIj5cclxuICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuU2NhblBvaW50XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIFNjYW5Qb2ludExpc3RcIlxyXG4gICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tc2VhcmNoXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICA+5pCc57SiPC9lbC1idXR0b25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tcmVmcmVzaFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCJcclxuICAgICAgICAgICAgICA+6YeN572uPC9lbC1idXR0b25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cIndhcm5pbmdcIlxyXG4gICAgICAgICAgICAgIHBsYWluXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxNXB4XCJcclxuICAgICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICAgICAgICA+5a+85Ye6KEV4Y2VsKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgcGxhaW5cclxuICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1kb3dubG9hZFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDE1cHhcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZURvd25sb2FkTm90UmVwZWF0KClcIlxyXG4gICAgICAgICAgICAgID7lr7zlh7oo5LiN6YeN5aSNKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgICBwbGFpblxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIDpsb2FkaW5nPVwiYnV0dG9uMkxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVVwZGF0ZUFsbCgpXCJcclxuICAgICAgICAgICAgICA+6YeN5paw6Kej5p6QKOaJp+ihjOWFqOmDqClcclxuICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgIDwvZmxleGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImwtdGFibGVcIj5cclxuICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICA8ZWwtdGFibGVcclxuICAgICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICA6ZGF0YT1cImxpc3RcIlxyXG4gICAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICAgIDpoZWFkZXItY2VsbC1zdHlsZT1cImhlYWRlclJvd1N0eWxlXCJcclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIHN0cmlwZVxyXG4gICAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IC0yNXB4XCJcclxuICAgICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgICBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3XCJcclxuICAgICAgICAgIHByb3A9XCJob3N0U05cIlxyXG4gICAgICAgICAgc29ydGFibGVcclxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgIHdpZHRoPVwiMTEwcHhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5rLXR5cGVcIiBAY2xpY2s9XCJoYW5kbGVEcmF3ZXJPcGVuKHNjb3BlLnJvdylcIj57e1xyXG4gICAgICAgICAgICAgIHNjb3BlLnJvdy5ob3N0U05cclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgIDpwcm9wPVwiaXRlbS5wcm9wXCJcclxuICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIlxyXG4gICAgICAgICAgOmZvcm1hdHRlcj1cImZpZWxkRm9ybWF0dGVyXCJcclxuICAgICAgICAgIHNvcnRhYmxlXHJcbiAgICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICAgIDpndXR0ZXI9XCIwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICB7eyBzY29wZS5jb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIGxhYmVsPVwi5pON5L2cXCIgYWxpZ249XCJjZW50ZXJcIiB3aWR0aD1cIjEyOHB4XCI+XHJcbiAgICAgICAgICA8dGVtcGxhdGUgc2xvdC1zY29wZT1cInsgcm93IH1cIj5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlVXBkYXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLWVkaXRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDwvZWwtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICAgIDwhLS0g5YiG6aG15o6n5Lu2IHN0eWxlPVwibWFyZ2luLXRvcDogLTI1cHg7bWFyZ2luLWJvdHRvbTotMjVweDtmbG9hdDpyaWdodDtcIi0tPlxyXG4gICAgICA8cGFnaW5hdGlvblxyXG4gICAgICAgIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCJcclxuICAgICAgICA6dG90YWw9XCJ0b3RhbENvdW50XCJcclxuICAgICAgICA6cGFnZS5zeW5jPVwicGFnZVwiXHJcbiAgICAgICAgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkuTWF4UmVzdWx0Q291bnRcIlxyXG4gICAgICAgIEBwYWdpbmF0aW9uPVwiZ2V0TGlzdFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgICA8ZWwtZHJhd2VyXHJcbiAgICAgICAgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIlxyXG4gICAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICAgIGRpcmVjdGlvbj1cInJ0bFwiXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRyYXdlclwiXHJcbiAgICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICAgIHYtYmluZDpjdXN0b21lckluZm9zPVwiY3VzdG9tZXJJbmZvc1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogLTM1cHhcIlxyXG4gICAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2VsLWRyYXdlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS3mt7vliqDmgLvmiJAtLT5cclxuICAgIDxlbC1kaWFsb2dcclxuICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ0Zvcm1WaXNpYmxlXCJcclxuICAgICAgOmNsb3NlLW9uLWNsaWNrLW1vZGFsPVwiZmFsc2VcIlxyXG4gICAgICA6dGl0bGU9XCJmb3JtVGl0bGVcIlxyXG4gICAgICBhcHBlbmQtdG8tYm9keVxyXG4gICAgICB3aWR0aD1cIjEwMDBweFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogOTgwcHg7IGhlaWdodDogNjAwcHhcIj5cclxuICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImJvcmRlcjogMXB4OyB3aWR0aDogMjgwcHhcIj5cclxuICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIGhhbmRsZUN1cnJlbnRDaGFuZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luOiAwcHg7IHdpZHRoOiAyODBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjYwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cImFzVGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpkYXRhPVwiZXJwQXNzZW1ibHlDZmdMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBAcm93LWNsaWNrPVwicm93Q2xpY2thc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIEBzZWxlY3Q9XCJzZWxlY3RBc3NcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wPVwiZXJwQXNzZW1ibHlDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwi5oC75oiQ57yW5Y+3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTc4cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIOa3u+WKoOWIoOmZpOaMiemSriAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIGFsaWduPVwiY2VudGVyXCIgd2lkdGg9XCI2MXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIHR5cGU9XCJidXR0b25cIiA6cmVuZGVyLWhlYWRlcj1cInJlbmRlckhlYWRlclwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJhZGR6YyhzY29wZS4kaW5kZXgsc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLXBsdXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiZGVsemMoc2NvcGUuJGluZGV4LCBzY29wZS5yb3cpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1taW51c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwibGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMjgwcHg7IGJvcmRlcjogMXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1kaXZpZGVyIGNvbnRlbnQtcG9zaXRpb249XCJjZW50ZXJcIj7mt7vliqBFcnDmgLvmiJA8L2VsLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDFweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmxhYmVsLXBvc2l0aW9uPVwibGFiZWxQb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwtd2lkdGg9XCIxMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOm1vZGVsPVwiYXNzbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cImFzc2x5XCJcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRXJw5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB3aWR0aDogMjgwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuZXJwQXNzZW1ibHlDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWlRXJw5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRXJw5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB3aWR0aDogMjgwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuZXJwQXNzZW1ibHlOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWlRXJw5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLovablnotcIiBzdHlsZT1cImhlaWdodDogNDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZWwtaW5wdXQgdi1tb2RlbD1cImFzc2x5LmNhck1vZGVsXCIgY2xlYXJhYmxlPjwvZWwtaW5wdXQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuY2FyTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6novablnotcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwic3VibWl0QXNzeUZvcm0oJ2Fzc2x5JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+5re75YqgPC9lbC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9lbC1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiN1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHg7IGhlaWdodDogNTcwcHg7IHdpZHRoOiAyNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJ0ZW1wZGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICByZWY9XCJsZWZ0VGFibGVcIlxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTUwXCJcclxuICAgICAgICAgICAgICAgIHN0cmlwZVxyXG4gICAgICAgICAgICAgICAgYm9yZGVyXHJcbiAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJyb3dDbGlja0xlZnRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdD1cInNlbGVjdExlZnRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdC1hbGw9XCJzZWxlY3RMZWZ0QWxsXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwcHhcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICBwcm9wPVwicGFydENvZGVcIlxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD1cIue7k+eul+S7tuS7o+eggVwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwcHhcIlxyXG4gICAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgIHByb3A9XCJwYXJ0TnVtXCJcclxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCLmlbDph49cIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjc4cHhcIlxyXG4gICAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPC9lbC10YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgIDwhLS0g5bem5Y+z56m/5qKt5oyJ6ZKuIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDU3MHB4OyB3aWR0aDogNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1yb3cgc3R5bGU9XCJsaW5lLWhlaWdodDogMzAwcHhcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiYnRubGVmdGNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1jYXJldC1sZWZ0XCJcclxuICAgICAgICAgICAgICAgID48L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJidG5yaWdodGNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1jYXJldC1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiN1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHg7IGhlaWdodDogNTcwcHg7IHdpZHRoOiAyNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJkYXRhMlwiXHJcbiAgICAgICAgICAgICAgICByZWY9XCJyaWdodFRhYmxlXCJcclxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjU1MFwiXHJcbiAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgIGJvcmRlclxyXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgICAgICAgICAgICBAcm93LWNsaWNrPVwicm93Q2xpY2tSaWdodFwiXHJcbiAgICAgICAgICAgICAgICBAc2VsZWN0PVwic2VsZWN0UmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdC1hbGw9XCJzZWxlY3RSaWdodEFsbFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwic2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0MHB4XCJcclxuICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgcHJvcD1cInBhcnRDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCLnu5Pnrpfku7bku6PnoIFcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICBwcm9wPVwicGFydE51bVwiXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwi5pWw6YePXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3OHB4XCJcclxuICAgICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8IS0tIDxlbC10YWJsZS10cmFuc2ZlclxyXG4gICAgICAgICAgICAgICAgICAgIGxlZnRUaXRsZT1cIue7k+eul+S7tlwiXHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRUaXRsZT1cIuacquefpeaAu+aIkFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmNvbHVtbnM9J2NvbHVtbnMnXHJcbiAgICAgICAgICAgICAgICAgICAgOmRhdGFMZWZ0PVwiZGF0YTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpkYXRhUmlnaHQ9XCJkYXRhMlwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpkZWZhdWx0PVwie3Njb3BlfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2NvcGUucm93W3Njb3BlLmNvbC52YWx1ZV19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9lbC10YWJsZS10cmFuc2Zlcj4gLS0+XHJcbiAgICAgICAgICA8IS0tIOWPr+S7peS9v+eUqOaPkuanveiOt+WPluWIsOWIl+S/oeaBr+WSjOihjOS/oeaBr++8jOS7juiAjOi/m+ihjOaVsOaNrueahOWkhOeQhiAtLT5cclxuICAgICAgICAgIDwhLS0gPGVsLWNvbCA6c3Bhbj1cIjE3XCI+PC9lbC1jb2w+IC0tPlxyXG4gICAgICAgIDwvZWwtcm93PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBzbG90PVwiZm9vdGVyXCJcclxuICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiXHJcbiAgICAgICAgICBhbGlnbj1cInJpZ2h0XCJcclxuICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDk1MHB4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uIDpsb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmVcIlxyXG4gICAgICAgICAgICA+56Gu6K6kPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2VsLWRpYWxvZz5cclxuXHJcbiAgICA8IS0tIOenu+WKqOaVsOmHj+eql+S9kyAtLT5cclxuICAgIDxlbC1kaWFsb2dcclxuICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ051bVZpc2libGVcIlxyXG4gICAgICA6Y2xvc2Utb24tY2xpY2stbW9kYWw9XCJmYWxzZVwiXHJcbiAgICAgIDp0aXRsZT1cIm51bVRpdGxlXCJcclxuICAgICAgYXBwZW5kLXRvLWJvZHlcclxuICAgICAgd2lkdGg9XCI1NzBweFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGVsLWZvcm1cclxuICAgICAgICAgIDptb2RlbD1cIm51bUZvcm1EYXRhXCJcclxuICAgICAgICAgIHJlZj1cIm51bUZvcm1EYXRhXCJcclxuICAgICAgICAgIGxhYmVsLXdpZHRoPVwiMTAwcHhcIlxyXG4gICAgICAgICAgY2xhc3M9XCJudW0tcnVsZUZvcm1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgbGFiZWw9XCLmlbDph49cIlxyXG4gICAgICAgICAgICBwcm9wPVwibnVtXCJcclxuICAgICAgICAgICAgOnJ1bGVzPVwiW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfmlbDph4/kuI3og73kuLrnqbrkuJToh7PlsJHkuLoxJyB9XVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJudW1Gb3JtRGF0YS5udW1cIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPC9lbC1mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzbG90PVwiZm9vdGVyXCIgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiA6bG9hZGluZz1cImZvcm1Mb2FkaW5nXCIgdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJzYXZlTnVtKClcIlxyXG4gICAgICAgICAgPuehruiupDwvZWwtYnV0dG9uXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxlbC1idXR0b24gdHlwZT1cInRleHRcIiBAY2xpY2s9XCJkaWFsb2dOdW1WaXNpYmxlID0gZmFsc2VcIlxyXG4gICAgICAgICAgPuWPlua2iDwvZWwtYnV0dG9uXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZWwtZGlhbG9nPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbC52dWVcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuXHJcbi8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcbmNvbnN0IGJvbVVuaXQgPSBbXHJcbiAgeyBrZXk6IDAsIGRpc3BsYXlfbmFtZTogXCJQQ1wiIH0sXHJcbiAgeyBrZXk6IDEsIGRpc3BsYXlfbmFtZTogXCJUT05cIiB9LFxyXG4gIHsga2V5OiAyLCBkaXNwbGF5X25hbWU6IFwiT3RoZXJcIiB9LFxyXG5dO1xyXG5jb25zdCBwcm9qZWN0VHlwZUtleVZhbHVlID0gYm9tVW5pdC5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XHJcbiAgYWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuICByZXR1cm4gYWNjO1xyXG59LCB7fSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJVbmtub3duQXNzZW1ibHlcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgaW1wb3J0RXhjZWwsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICBjb25zdCB2YWxpZFZlcnNpb24gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG4gICAgICBpZiAoIW51bWJlclJlZy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIuWPquiDveS4ujbkvY3mlbDlrZfvvIFcIikpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcImJvbWRhdGFiYXNlXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHZhbHVlU2VsZWN0OiBcIlwiLFxyXG4gICAgICBPbmxpbmVUaW1lVmFsdWU6IFtdLCAvL+S4iue6v+aXtumXtFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgZGlhbG9nT3B0aW9uczogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgYXNUZW1wOiBbXSwgLy/mgLvmiJDnvJblj7fngrnlh7vnvJPlrZhcclxuICAgICAgcmlnaHRSb3dUZW1wOiBbXSwgLy/lj7Pkvqfnp7vliqjngrnlh7vnvJPlrZhcclxuICAgICAgbGVmdFJvd1RlbXA6IFtdLCAvL+W3puS+p+enu+WKqOeCueWHu+e8k+WtmFxyXG4gICAgICBzZWxlY3Rpb25lZDogXCJcIiwgLy/ljZXpgInkuK3nmoTlgLxcclxuICAgICAgY2FyTW9kZWxzOiBbXSwgLy/ovablnovkuIvmi4nmoYbmlbDmja7mupBcclxuICAgICAgY3VycmVudFJvdzogXCJcIixcclxuICAgICAgdmVyc2lvbkxpc3Q6IFtdLCAvL+eJiOacrOWIl+ihqFxyXG4gICAgICBzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgZm9ybToge30sXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBib21JZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgLy8g6auY57qn5pCc57SiXHJcbiAgICAgIGZpbHRlck9iajoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbGlzdFF1ZXJ5OiB7XHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBPbmxpbmVUaW1lQmVnaW46IHVuZGVmaW5lZCxcclxuICAgICAgICBPbmxpbmVUaW1lRW5kOiB1bmRlZmluZWQsXHJcbiAgICAgICAgS05SOiB1bmRlZmluZWQsXHJcbiAgICAgICAgVklOOiB1bmRlZmluZWQsXHJcbiAgICAgICAgU2NhblBvaW50OiB1bmRlZmluZWQsXHJcbiAgICAgICAgQmlsbERlc2NyaXB0aW9uOiB1bmRlZmluZWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RVbmtub3duQXNzZW1ibHlRdWVyeToge1xyXG4gICAgICAgIGJpbGxJZDogXCJcIixcclxuICAgICAgICAvL2FwcGx5OlwiXCIsXHJcbiAgICAgICAgdmluOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBwYWdlOiAxLFxyXG4gICAgICAvLyDmmL7npLrmkJzntKLmnaHku7ZcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgYm9tVW5pdCxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBkaWFsb2dGb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGRpYWxvZ051bVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIG51bVRpdGxlOiBcIlwiLFxyXG4gICAgICBpc0VkaXQ6IGZhbHNlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICBidXR0b24yTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDIyMCxcclxuICAgICAgLy9jb2x1bW5zOiBbXHJcbiAgICAgIC8vICAgICAgICAgIHtuYW1lOiAn57uT566X5Lu25Luj56CBJywgdmFsdWU6ICdwYXJ0Q29kZScsIHdpZHRoOiAnMTgwcHgnfSxcclxuICAgICAgLy8gICAgICAgICAge25hbWU6ICfmlbDph48nLCB2YWx1ZTogJ3BhcnROdW0nLH0sXHJcbiAgICAgIC8vICAgICAgXSxcclxuICAgICAgLy8gZGF0YTE6IFtcclxuICAgICAgLy8gXSxcclxuXHJcbiAgICAgIG51bUZvcm1EYXRhOiB7XHJcbiAgICAgICAgbnVtOiAxLFxyXG4gICAgICB9LFxyXG4gICAgICB6Y0NvZGU6IFtdLFxyXG4gICAgICAvKuacgOe7iOaPkOS6pOe8k+WtmCovXHJcbiAgICAgIHRlbXBBc3NDZmdMaXN0OiBbXSxcclxuICAgICAgLyrlj7PkvqfmlbDmja7mupAqL1xyXG4gICAgICBkYXRhMjogW10sXHJcbiAgICAgIC8q5Lit6Ze05pWw5o2u5rqQKi9cclxuICAgICAgdGVtcGRldGFpbHM6IFtcclxuICAgICAgICAvL3tcclxuICAgICAgICAvLyBwYXJ0Q29kZTogXCIxXCIsXHJcbiAgICAgICAgLy8gcGFydE51bTogMCxcclxuICAgICAgICAvLyBpc0tleTogdHJ1ZVxyXG4gICAgICAgIC8vfVxyXG4gICAgICBdLFxyXG4gICAgICAvKuW3puS+p+aAu+aIkOaVsOaNrua6kCovXHJcbiAgICAgIGVycEFzc2VtYmx5Q2ZnTGlzdDogW10sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBlcnBBc3NlbWJseUNvZGU6IFwic3RyaW5nXCIsXHJcbiAgICAgIC8vICAgZXJwQXNzZW1ibHlOYW1lOiBcInN0cmluZ1wiLFxyXG4gICAgICAvLyAgIGlzQ292ZXI6IHRydWUsXHJcbiAgICAgIC8vICAgY2FyTW9kZWw6IFwiXCIsXHJcbiAgICAgIC8vICAgcHJldmlvdXNWZXJzaW9uSWQ6IFwiM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2XCIsXHJcbiAgICAgIC8vICAgZGV0YWlsczogW1xyXG4gICAgICAvLyAgICAge1xyXG4gICAgICAvLyAgICAgICBwYXJ0Q29kZTogXCJzdHJpbmdcIixcclxuICAgICAgLy8gICAgICAgcGFydE51bTogMCxcclxuICAgICAgLy8gICAgICAgZGVzY3JpcHRpb246IFwic3RyaW5nXCIsXHJcbiAgICAgIC8vICAgICAgIGlzS2V5OiB0cnVlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgXVxyXG4gICAgICAvLyB9XHJcbiAgICAgIGxhYmVsUG9zaXRpb246IFwibGVmdFwiLFxyXG4gICAgICBhc3NseToge1xyXG4gICAgICAgIGVycEFzc2VtYmx5Q29kZTogXCJcIixcclxuICAgICAgICBlcnBBc3NlbWJseU5hbWU6IFwiXCIsXHJcbiAgICAgICAgY2FyTW9kZWw6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHZlaGljbGVNb2RlbFF1ZXJ5OiB7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6IFwi5rS+5qC86L2m5Z6LXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHZlaGljbGVNb2RlbExpc3Q6IFtdLCAvL+i9puWei2xpc3RcclxuICAgICAgU2NhblBvaW50TGlzdDogW1xyXG4gICAgICAgIHsgaWQ6IFwiMFwiLCBsYWJlbDogXCIgXCIgfSxcclxuICAgICAgICB7IGlkOiBcIlIxMDBcIiwgbGFiZWw6IFwiUjEwMFwiIH0sXHJcbiAgICAgICAgeyBpZDogXCJNMTAwXCIsIGxhYmVsOiBcIk0xMDBcIiB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgIGxldCBib3hIID0gdGhpcy4kcmVmcy5ib3gub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7IC8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG4gICAgfSk7XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICAvLyB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgIC8vICAgbGFiZWw6IFwi5aSn5LyX6aG65bqP5Y+3XCIsXHJcbiAgICAgIC8vICAgcHJvcDogXCJob3N0U05cIixcclxuICAgICAgLy8gICB3aWR0aDogMTUwLFxyXG4gICAgICAvLyB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIuW6leebmOWPt1wiLFxyXG4gICAgICAgIHByb3A6IFwidmluXCIsXHJcbiAgICAgICAgd2lkdGg6IDE4MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCJLTlJcIixcclxuICAgICAgICBwcm9wOiBcImtuclwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5LiK57q/5pe26Ze0XCIsXHJcbiAgICAgICAgcHJvcDogXCJvbmxpbmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmiavmj4/ngrlcIixcclxuICAgICAgICBwcm9wOiBcInNjYW5Qb2ludFwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi6L2m5Z6L5Luj56CBXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLovablnovlkI3np7BcIixcclxuICAgICAgICBwcm9wOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLljZXmja7mj4/ov7BcIixcclxuICAgICAgICBwcm9wOiBcImJpbGxEZXNjcmlwdGlvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5aSH5rOoXCIsXHJcbiAgICAgICAgcHJvcDogXCJkZXNjcmlwdGlvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgIC8vICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgIC8vICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE1MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogMTM1IH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8v5oq95bGJXHJcbiAgICBoYW5kbGVEcmF3ZXJPcGVuKHBhcmFtKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyID0gdHJ1ZTtcclxuICAgICAgdmFyIHBhcmVudElkID0gcGFyYW0uaWQ7IC8v5Li76ZSuaWRcclxuICAgICAgdGhpcy5jdXN0b21lckluZm9zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZURyYXdlckNsb3NlKGRvbmUpIHtcclxuICAgICAgZG9uZSgpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVVwZGF0ZUFsbCgpIHtcclxuICAgICAgdmFyIHBhcmFtcyA9IHtcclxuICAgICAgICBpc1NlbGVjdEFsbDogdHJ1ZSxcclxuICAgICAgICB1bmtub3duQXNzZW1ibHlJZExpc3Q6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLiRjb25maXJtKFwi5piv5ZCm6KaB5YWo6YOo6L+b6KGM6Kej5p6QP1wiLCBcIuaPkOekulwiLCB7XHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5idXR0b24yTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgIC5wb3N0cyhcIi9hcGkvbmV3aml0L3Vua25vd24tYXNzZW1ibHkvdG8tcGFyc2VcIiwgcGFyYW1zKVxyXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pON5L2c5oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9uMkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbjJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbjJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDph43mlrDorqHnrpfmgLvmiJAgKi9cclxuICAgIGhhbmRsZVVwZGF0ZShyb3cpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6Iez5bCR6YCJ5oup5LiA6KGMXCIsXHJcbiAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAvL+aJuemHj+aTjeS9nFxyXG4gICAgICAgIHZhciBwYXJhbXMgPSB7XHJcbiAgICAgICAgICBpc1NlbGVjdEFsbDogZmFsc2UsXHJcbiAgICAgICAgICB1bmtub3duQXNzZW1ibHlJZExpc3Q6IFtdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHJvdykge1xyXG4gICAgICAgICAgLy/ljZXooYxcclxuICAgICAgICAgIHBhcmFtcy51bmtub3duQXNzZW1ibHlJZExpc3QucHVzaChyb3cuaWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL+WkmumAiVxyXG4gICAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7XHJcbiAgICAgICAgICAgIHBhcmFtcy51bmtub3duQXNzZW1ibHlJZExpc3QucHVzaChpZCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLmnKrnn6XmgLvmiJDor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHBhcmFtcykpO1xyXG4gICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L3RvLXBhcnNlXCIsIHBhcmFtcylcclxuICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IHRydWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaTjeS9nOaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZmV0Y2hEYXRhKGlkKSB7XHJcbiAgICAgIC8v5b6q546v5Yqo5oCBXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L1wiICsgaWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDlr7zlh7rlip/og70gKi9cclxuICAgIGhhbmRsZURvd25sb2FkKCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2V4cG9ydFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuICAgICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAgIC5Cb2xiR2V0cyhcIi9hcGkvbmV3aml0L2V4Y2x1ZGUtcGFydC1jZmcvZG93bmxvYWQvXCIgKyBmaWxlbmFtZSlcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGVuYW1lLmluZGV4T2YoXCJfXCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZG93bk5hbWUgPVxyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoZmlsZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZG93bk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDkuI3ph43lpI3lr7zlh7rlip/og70gKi9cclxuICAgIGhhbmRsZURvd25sb2FkTm90UmVwZWF0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2V4cG9ydC1ub3QtcmVwZWF0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGxldCBmaWxlbmFtZSA9IHJlcy5pdGVtO1xyXG4gICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgLkJvbGJHZXRzKFwiL2FwaS9uZXdqaXQvZXhjbHVkZS1wYXJ0LWNmZy9kb3dubG9hZC9cIiArIGZpbGVuYW1lKVxyXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoZmlsZW5hbWUuaW5kZXhPZihcIl9cIikgIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxldCBkb3duTmFtZSA9XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKDAsIGZpbGVuYW1lLmxhc3RJbmRleE9mKFwiX1wiKSkgK1xyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZShmaWxlbmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBkb3duTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGUocmVzcG9uc2UsIGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMuJHJlZnNbcmVmTmFtZV0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpO1xyXG4gICAgICBcclxuICAgIH0sXHJcbiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcbiAgICBoYW5kbGVRdWVyeSgpIHtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gMTtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0VmFsdWUocGFyYW1zKSB7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmVyc2lvblZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RPcHRpb25zQ2hhbmdlKGl0ZW0pIHtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICAvL3RoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIC8qIOS4u+mhtemdoua3u+WKoOaAu+aIkOaMiemSruS6i+S7tiAqL1xyXG4gICAgaGFuZGxlQ3JlYXRlKCkge1xyXG4gICAgICAvLyB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIC8vICAgdGhpcy4kcmVmc1tcImZvcm1Db3VudFwiXS5yZXNldEZpZWxkcygpO1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIuW/hemhu+mAieaLqeS4gOihjFwiLFxyXG4gICAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0udmluKTtcclxuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5re75Yqg5oC75oiQXCI7XHJcbiAgICAgICAgdGhpcy5pc0VkaXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvcm0gPSB7fTtcclxuICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTtcclxuICAgICAgICB0aGlzLmFzc2x5ID0ge307XHJcbiAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wQXNzQ2ZnTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuYXNUZW1wID0gW107XHJcbiAgICAgICAgdGhpcy5nZXRVbmtub3duQXNzZW1ibHlMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5nZXRaY0NvZGUoKTtcclxuICAgICAgICB0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwiYmlsbFN0YXR1c1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgMDogXCLmnKrnlJ/mlYhcIiwgMjogXCLlt7LnlJ/mlYhcIiwgMzogXCLlt7Llj5HluINcIiB9W3Jvd1tjb2x1bW4ucHJvcGVydHldXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09IFwib25saW5lVGltZVwiIHx8IGNvbHVtbi5wcm9wZXJ0eSA9PSBcInJlY2VpdmVUaW1lXCIpIHtcclxuICAgICAgICB2YXIgZGF0ZSA9IHJvd1tjb2x1bW4ucHJvcGVydHldO1xyXG4gICAgICAgIGlmIChkYXRlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV0gfHwgXCItLVwiO1xyXG4gICAgfSxcclxuICAgIHJvbGVGaWx0ZXIodHlwZSkge1xyXG4gICAgICByZXR1cm4gcHJvamVjdFR5cGVLZXlWYWx1ZVt0eXBlXTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGlmIChkYXRhICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIGRhdGEubGltaXQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gKHRoaXMucGFnZSAtIDEpICogMTU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuT25saW5lVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUJlZ2luID0gdGhpcy5PbmxpbmVUaW1lVmFsdWVbMF07IC8vdGhpcy5PbmxpbmVUaW1lVmFsdWVcclxuICAgICAgICAvLyA/IHRoaXMuT25saW5lVGltZVZhbHVlWzBdIHx8IFwiXCJcclxuICAgICAgICAvLyA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMuT25saW5lVGltZVZhbHVlWzFdOyAvL3RoaXMuT25saW5lVGltZVZhbHVlXHJcbiAgICAgICAgLy8gPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXSB8fCBcIlwiXHJcbiAgICAgICAgLy8gOiBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIuacquefpeaAu+aIkFwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoKSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHNvcnRDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBjb25zdCB7IHByb3AsIG9yZGVyIH0gPSBkYXRhO1xyXG4gICAgICBpZiAoIXByb3AgfHwgIW9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5saXN0UXVlcnkuU29ydGluZyA9IHByb3AgKyBcIiBcIiArIG9yZGVyO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi2c3R5bGUgKi9cclxuICAgIGNlbGxTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuICAgIGhlYWRlclJvd1N0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwicXR5XCIpIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIC8vdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bovablnovmlbDmja7mupAgKi9cclxuICAgIGdldENhck1vZGVsKCkge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIiArIFwiP2RpY1R5cGVOYW1lPei9puWei1wiKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHJlc3BvbnNlLml0ZW1zXCIsIHJlc3BvbnNlLml0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5jYXJNb2RlbHMgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwidGhpcyBpcyBjYXJNb2RlbHNcIix0aGlzLmNhck1vZGVscyk7XHJcbiAgICB9LFxyXG4gICAgLyog5Yqg5Y+35oyJ6ZKu5re75Yqg5LqL5Lu2ICovXHJcbiAgICBhZGR6YygpIHtcclxuICAgICAgLy90b2RvIOa3u+WKoOaAu+aIkOW3puS+p+eahCDliqDlj7fmjInpkq4g5b6F5YGaXHJcbiAgICAgIGFsZXJ0KFwiMVwiKTtcclxuICAgIH0sXHJcbiAgICAvKiDlh4/lj7fmjInpkq7liKDpmaTkuovku7YgKi9cclxuICAgIGRlbHpjKGluZGV4KSB7XHJcbiAgICAgIHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0KTtcclxuICAgIH0sXHJcbiAgICAvKiDmt7vliqDmgLvmiJDmnIDnu4jmj5DkuqTnmoTmlbDmja7kuovku7YqL1xyXG4gICAgc2F2ZSgpIHtcclxuICAgICAgLy9pZih0aGlzLmRhdGEyLmxlbmd0aCA9PT0wKXtcclxuICAgICAgaWYgKHRoaXMuZGF0YTIubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIui/mOaciee7k+eul+S7t+S7o+eggeWwmuacquWMuemFjVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciBsYXN0U3VibWl0ID0ge1xyXG4gICAgICAgIGJpbGxJZDogdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkLFxyXG4gICAgICAgIHNjYW5Qb2ludDogXCJNMTAwXCIsXHJcbiAgICAgICAgZXJwQXNzZW1ibHlDZmdMaXN0OiBbXSxcclxuICAgICAgfTtcclxuICAgICAgbGFzdFN1Ym1pdC5lcnBBc3NlbWJseUNmZ0xpc3QgPSB0aGlzLnRlbXBBc3NDZmdMaXN0O1xyXG5cclxuICAgICAgLy8jcmVnaW9uXHJcbiAgICAgIC8vIHZhciBsYXN0U3VibWl0dCA9IFtdO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImZsYWdcIilcclxuICAgICAgLy8gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAvLyAgIGVsZW1lbnQuZGV0YWlscy5mb3JFYWNoKGVsZW1lbnQxID0+IHtcclxuICAgICAgLy8gICAgIGxhc3RTdWJtaXR0LnB1c2goe1xyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseUNvZGU6IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseU5hbWU6IGVsZW1lbnQuZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAvLyAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgLy8gICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6XCJmN2Q0NWRiYS0zMTY0LTRhOTEtYjQ3Ny0zYzU2OGM4MWU2YTBcIixcclxuICAgICAgLy8gICAgICAgdmVoaWNsZU1vZGVsOiBlbGVtZW50LnZlaGljbGVNb2RlbCxcclxuICAgICAgLy8gICAgICAgZGV0YWlsczp7XHJcbiAgICAgIC8vICAgICAgICAgcGFydENvZGU6ZWxlbWVudDEucGFydENvZGUsXHJcbiAgICAgIC8vICAgICAgICAgcGFydE51bTplbGVtZW50MS5wYXJ0TnVtLFxyXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOmVsZW1lbnQxLmRlc2NyaXB0aW9uLFxyXG4gICAgICAvLyAgICAgICAgIGlzS2V5OiB0cnVlLFxyXG4gICAgICAvLyAgICAgICB9XHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJ0aGlzIGlzIGxhc3RTdWJtaXR0OlwiLGxhc3RTdWJtaXR0KVxyXG4gICAgICAvLyB2YXIgbGFzdFN1Ym1pdCA9IFtdO1xyXG4gICAgICAvLyBsYXN0U3VibWl0dC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAvLyAgIGxhc3RTdWJtaXQucHVzaCh7XHJcbiAgICAgIC8vICAgICBiaWxsSUQ6dGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkLFxyXG4gICAgICAvLyAgICAgc2NhblBvaW50OiBcIk0xMDBcIixcclxuICAgICAgLy8gICAgIGVycEFzc2VtYmx5Q2ZnTGlzdDpbe1xyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseUNvZGU6IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseU5hbWU6IGVsZW1lbnQuZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAvLyAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgLy8gICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgIC8vICAgICAgIHZlaGljbGVNb2RlbDogZWxlbWVudC52ZWhpY2xlTW9kZWwsXHJcbiAgICAgIC8vICAgICAgIGRldGFpbHM6ZWxlbWVudC5kZXRhaWxzXHJcbiAgICAgIC8vICAgICB9XVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vIH0pO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMgaXMgbGFzdFN1Ym1pdDpcIixsYXN0U3VibWl0KVxyXG4gICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLnBvc3RzKFwiL2FwaS9uZXdqaXQvdW5rbm93bi1hc3NlbWJseS9hZGQtYXNzZW1ibHlcIiwgbGFzdFN1Ym1pdClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudGVtcEFzc0NmZ0xpc3QgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFzVGVtcCA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICBtZXNzYWdlOiBcIua3u+WKoOaAu+aIkOaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAvL3RoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBlbHNle1xyXG4gICAgICAvLyAgIGFsZXJ0KFwi5pyq55+l6Zu25Lu25pyq5YiG6YWN5a6M77yM6K+356Gu6K6k77yBXCIpXHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bmnKrnn6XmgLvmiJDpm7bku7bmlbDmja7mupAgKi9cclxuICAgIGdldFVua25vd25Bc3NlbWJseUxpc3QoKSB7XHJcbiAgICAgIHRoaXMubGlzdFVua25vd25Bc3NlbWJseVF1ZXJ5LmJpbGxJZCA9IHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQ7XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkpO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L1wiICsgdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXRhMiA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAodSkgPT4gdS5wYXJ0VHlwZSA9PT0gXCIxXCIgfHwgdS5wYXJ0VHlwZSA9PT0gbnVsbFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bmgLvmiJDpm7bku7bmlbDmja7mupAqL1xyXG4gICAgZ2V0WmNDb2RlKCkge1xyXG4gICAgICB0aGlzLnpjQ29kZSA9IFtdO1xyXG4gICAgICB0aGlzLmxpc3RVbmtub3duQXNzZW1ibHlRdWVyeS52aW4gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLnZpbjtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmxpc3RVbmtub3duQXNzZW1ibHlRdWVyeS52aW4pO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2dldC1lcnAtYXNzZW1ibHktY29kZVwiICtcclxuICAgICAgICAgICAgXCI/dmluPVwiICtcclxuICAgICAgICAgICAgdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkudmluXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UuaXRlbSk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXRlbS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJoYXMgbm8gQVNTQ29kZVwiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLml0ZW0uZm9yRWFjaCgoemNjb2RlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnBBc3NlbWJseUNmZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseUNvZGU6IHpjY29kZSxcclxuICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogW10sXHJcbiAgICAgICAgICAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNhck1vZGVsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiBbXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0TnVtOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyog5re75Yqg5oC75oiQ5o+Q5Lqk5pa55rOVICovXHJcbiAgICBzdWJtaXRBc3N5Rm9ybShmb3JtTmFtZSkge1xyXG4gICAgICB0aGlzLiRyZWZzW2Zvcm1OYW1lXS52YWxpZGF0ZSgodmFsaWQpID0+IHtcclxuICAgICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFzc2x5LmVycEFzc2VtYmx5Q29kZSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICBlcnBBc3NlbWJseUNvZGU6IHRoaXMuYXNzbHkuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogdGhpcy5hc3NseS5lcnBBc3NlbWJseU5hbWUsXHJcbiAgICAgICAgICAgICAgY2FyTW9kZWw6IHRoaXMuYXNzbHkuY2FyTW9kZWwsXHJcbiAgICAgICAgICAgICAgaXNDb3ZlcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgZGV0YWlsczogW10sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzbHkuZXJwQXNzZW1ibHlDb2RlID0gXCJcIjtcclxuICAgICAgICAgICAgdGhpcy5hc3NseS5lcnBBc3NlbWJseU5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2x5LmNhck1vZGVsID0gXCJcIjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFsZXJ0KFwi6K+35YWI5aGr5YaZRXJw5oC75oiQ5L+h5oGv77yBXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yIHN1Ym1pdCEhXCIpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgYnRubGVmdGNsaWNrKCkge1xyXG4gICAgICBpZiAodGhpcy5hc1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6nmgLvmiJDnvJblj7fvvIFcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRSb3dUZW1wLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6npnIDnp7vliqjnmoTpm7bku7ZcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQodGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSkgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gcGFyc2VJbnQodGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSk7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ051bVZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5udW1UaXRsZSA9IFwi6L6T5YWl56e75Yqo57uT566X5Lu25pWw6YePXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiUi0+RlwiKTtcclxuICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPSBpdGVtLnBhcnROdW07XHJcbiAgICAgICAgICAgIC8vaWYodGhpcy5udW1Gb3JtRGF0YS5udW0gPD0gaXRlbS5wYXJ0TnVtICYmIHRoaXMubnVtRm9ybURhdGEubnVtID4gMCl7XHJcblxyXG4gICAgICAgICAgICAvL+aVsOaNruaPkuWFpeacgOe7iOe8k+WtmFxyXG4gICAgICAgICAgICBpZiAodGhpcy50ZW1wQXNzQ2ZnTGlzdC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNlY29uZFwiKTtcclxuICAgICAgICAgICAgICB2YXIgcmZNb3ZlID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgaWYgKHJmTW92ZS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBzYW1lRGV0YWlsID0gcmZNb3ZlWzBdLmRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmIChzYW1lRGV0YWlsLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICBzYW1lRGV0YWlsWzBdLnBhcnROdW0gPVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHNhbWVEZXRhaWxbMF0ucGFydE51bSkgK1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJmTW92ZVswXS5kZXRhaWxzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogaXRlbS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0TnVtOiB0aGlzLm51bUZvcm1EYXRhLm51bSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Yqg6L+b5Y675LqGXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wQXNzQ2ZnTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgICB2ZWhpY2xlTW9kZWw6IHRoaXMuYXNUZW1wWzBdLmNhck1vZGVsLFxyXG4gICAgICAgICAgICAgICAgICBkZXRhaWxzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogaXRlbS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdFwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBBc3NDZmdMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgIGlzQ292ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgZGV0YWlsczogW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnRDb2RlOiBpdGVtLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGp1ZGdlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHZhciB0ID1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KGp1ZGdlWzBdLnBhcnROdW0pICsgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApWzBdLnBhcnROdW0gPSB0O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBhcnRDb2RlOiBpdGVtLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgcGFydE51bTogcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qIOWPs+S+p+aVsOaNruenu+WKqCAqL1xyXG4gICAgICAgICAgICB2YXIgZGVsaWQgPSB0aGlzLmRhdGEyLmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICApWzBdO1xyXG4gICAgICAgICAgICB2YXIgbjEgPSBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgIHZhciBuMiA9IHBhcnNlSW50KGRlbGlkLnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZiAobjEgPT09IG4yKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMiA9IHRoaXMuZGF0YTIuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IGRlbGlkLnBhcnROdW0gLSB0aGlzLm51bUZvcm1EYXRhLm51bTtcclxuICAgICAgICAgICAgICBpdGVtLnBhcnROdW0gPSBuMiAtIG4xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvL31cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBidG5yaWdodGNsaWNrKCkge1xyXG4gICAgICBpZiAodGhpcy5hc1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6nmgLvmiJDnvJblj7fvvIFcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGVmdFJvd1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBhbGVydChcIuivt+WFiOmAieaLqemcgOenu+WKqOeahOmbtuS7tlwiKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5sZW5ndGggPT09IDEgJiZcclxuICAgICAgICAgIHBhcnNlSW50KHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydE51bSkgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gcGFyc2VJbnQodGhpcy5sZWZ0Um93VGVtcG5wbVswXS5wYXJ0TnVtKTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm51bVRpdGxlID0gXCLovpPlhaXnp7vliqjnu5Pnrpfku7bmlbDph49cIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJGLT5SXCIpO1xyXG4gICAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gaXRlbS5wYXJ0TnVtO1xyXG4gICAgICAgICAgICAvL2lmKHRoaXMubnVtRm9ybURhdGEubnVtIDw9IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydE51bSAmJiB0aGlzLm51bUZvcm1EYXRhLm51bSA+IDApe1xyXG5cclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXmnIDnu4jnvJPlrZhcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLnp7vpmaTmiJbliKDpmaRcIik7XHJcbiAgICAgICAgICAgIHZhciBmck1vdmUgPSB0aGlzLnRlbXBBc3NDZmdMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB2YXIgc2FtZWRldGFpbCA9IGZyTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAoc2FtZWRldGFpbC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChzYW1lZGV0YWlsWzBdLnBhcnROdW0pID09PVxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBmck1vdmVbMF0uZGV0YWlscyA9IGZyTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHNhbWVkZXRhaWxbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHNhbWVkZXRhaWxbMF0ucGFydE51bSkgLVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNhbWVkZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoXCLmsqHmnInmlbDmja4hXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMgdGVtcEFzc0NmZ0xpc3Qg5pyA57uI5pWw5o2uXCIsIHRoaXMudGVtcEFzc0NmZ0xpc3QpO1xyXG5cclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXlj7PkvqfmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy5kYXRhMi5maWx0ZXIoKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGUpO1xyXG4gICAgICAgICAgICBpZiAoanVkZ2UubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHQgPVxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoanVkZ2VbMF0ucGFydE51bSkgKyBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcGFydENvZGU6IGl0ZW0ucGFydENvZGUsXHJcbiAgICAgICAgICAgICAgICBwYXJ0TnVtOiBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSksIC8v56e75Yqo5qGG6L6T5YWl55qE5pWw6YePXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyog5Lit6Ze05pWw5o2u56e75YqoICovXHJcbiAgICAgICAgICAgIHZhciBkZWxpZCA9IHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSBpdGVtLnBhcnRDb2RlXHJcbiAgICAgICAgICAgIClbMF07XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudGVtcGRldGFpbHMpO1xyXG4gICAgICAgICAgICB2YXIgbjEgPSBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgIHZhciBuMiA9IHBhcnNlSW50KGRlbGlkLnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZiAobjEgPT09IG4yKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMubGVmdFJvd1RlbXAgPSBbXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSBpdGVtLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKVswXS5wYXJ0TnVtID1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KGRlbGlkLnBhcnROdW0pIC0gcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIGl0ZW0ucGFydE51bSA9IG4yIC0gbjE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiDkv53lrZjmlbDph4/kuovku7YgKi9cclxuICAgIHNhdmVOdW0oKSB7XHJcbiAgICAgIGlmICh0aGlzLmFzVGVtcC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAvL+WIpOaWreS4remXtOmAieS4reenu+WKqOi/mOaYr+WPs+S+p+mAieS4reenu+WKqFxyXG4gICAgICAgIC8qICAg5bem5L6n56e75Yqo5Yiw5Y+z5L6nICAgKi9cclxuICAgICAgICBpZiAodGhpcy5sZWZ0Um93VGVtcC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiRi0+UlwiKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPD0gdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0TnVtICYmXHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID4gMFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIC8v5pWw5o2u5o+S5YWl5pyA57uI57yT5a2YXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi56e76Zmk5oiW5Yig6ZmkXCIpO1xyXG4gICAgICAgICAgICB2YXIgZnJNb3ZlID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdmFyIHNhbWVkZXRhaWwgPSBmck1vdmVbMF0uZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydENvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKHNhbWVkZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoc2FtZWRldGFpbFswXS5wYXJ0TnVtKSA9PT1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgZnJNb3ZlWzBdLmRldGFpbHMgPSBmck1vdmVbMF0uZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlICE9PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzYW1lZGV0YWlsWzBdLnBhcnROdW0gPVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUludChzYW1lZGV0YWlsWzBdLnBhcnROdW0pIC1cclxuICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChzYW1lZGV0YWlsLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgIGFsZXJ0KFwi5rKh5pyJ5pWw5o2uIVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuXHJcbiAgICAgICAgICAgIC8v5pWw5o2u5o+S5YWl5Y+z5L6n5pWw5o2u5rqQXHJcbiAgICAgICAgICAgIHZhciBqdWRnZSA9IHRoaXMuZGF0YTIuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChqdWRnZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICB2YXIgdCA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChqdWRnZVswXS5wYXJ0TnVtKSArIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKVswXS5wYXJ0TnVtID0gdDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMubGVmdFJvd1RlbXBbMF0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwYXJ0Q29kZTogdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgIHBhcnROdW06IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiDkuK3pl7TmlbDmja7np7vliqggKi9cclxuICAgICAgICAgICAgdmFyIGRlbGlkID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydENvZGVcclxuICAgICAgICAgICAgKVswXTtcclxuICAgICAgICAgICAgdmFyIG4xID0gcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICB2YXIgbjIgPSBwYXJzZUludChkZWxpZC5wYXJ0TnVtKTtcclxuICAgICAgICAgICAgaWYgKG4xID09PSBuMikge1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMgPSB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlICE9PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChkZWxpZC5wYXJ0TnVtKSAtIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnROdW0gPSBuMiAtIG4xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubnVtRm9ybURhdGEubnVtID09IDApIHtcclxuICAgICAgICAgICAgYWxlcnQoXCLovpPlhaXmlbDlrZfkuI3og73kuLow77yBXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWxlcnQoXCLovpPlhaXkuI3mraPnoa4s6K+356Gu6K6k77yBXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yaWdodFJvd1RlbXAubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAvKiAgIOWPs+S+p+enu+WKqOWIsOW3puS+pyAgICovXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlItPkZcIik7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtIDw9IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnROdW0gJiZcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPiAwXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXmnIDnu4jnvJPlrZhcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVtcEFzc0NmZ0xpc3QubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZWNvbmRcIik7XHJcbiAgICAgICAgICAgICAgdmFyIHJmTW92ZSA9IHRoaXMudGVtcEFzc0NmZ0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGlmIChyZk1vdmUubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2FtZURldGFpbCA9IHJmTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNhbWVEZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNhbWVEZXRhaWxbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoc2FtZURldGFpbFswXS5wYXJ0TnVtKSArXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmZNb3ZlWzBdLmRldGFpbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucmlnaHRSb3dUZW1wWzBdLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogdGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydENvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFydE51bTogdGhpcy5udW1Gb3JtRGF0YS5udW0sIC8v56e75Yqo5qGG6L6T5YWl55qE5pWw6YePXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWKoOi/m+WOu+S6hlwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVtcEFzc0NmZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5Q29kZTogdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5jYXJNb2RlbCxcclxuICAgICAgICAgICAgICAgICAgaXNDb3ZlcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmVyc2lvbklkOiB0aGlzLmFzVGVtcFswXS5wcmV2aW91c1ZlcnNpb25JZCxcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdFwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBBc3NDZmdMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgIGlzQ292ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5jYXJNb2RlbCxcclxuICAgICAgICAgICAgICAgIGRldGFpbHM6IFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFydENvZGU6IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChqdWRnZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICB2YXIgdCA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChqdWRnZVswXS5wYXJ0TnVtKSArIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgIHBhcnROdW06IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiDlj7PkvqfmlbDmja7np7vliqggKi9cclxuICAgICAgICAgICAgdmFyIGRlbGlkID0gdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUuaWQgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLmlkXHJcbiAgICAgICAgICAgIClbMF07XHJcbiAgICAgICAgICAgIHZhciBuMSA9IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgdmFyIG4yID0gcGFyc2VJbnQoZGVsaWQucGFydE51bSk7XHJcbiAgICAgICAgICAgIGlmIChuMSA9PT0gbjIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyID0gdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5pZCAhPT0gdGhpcy5yaWdodFJvd1RlbXBbMF0uaWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5pZCA9PT0gdGhpcy5yaWdodFJvd1RlbXBbMF0uaWRcclxuICAgICAgICAgICAgICApWzBdLnBhcnROdW0gPSBkZWxpZC5wYXJ0TnVtIC0gdGhpcy5udW1Gb3JtRGF0YS5udW07XHJcbiAgICAgICAgICAgICAgdGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSA9IG4yIC0gbjE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5udW1Gb3JtRGF0YS5udW0gPT0gMCkge1xyXG4gICAgICAgICAgICBhbGVydChcIui+k+WFpeaVsOWtl+S4jeiDveS4ujDvvIFcIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhbGVydChcIui+k+WFpeS4jeato+ehrizor7fnoa7orqTvvIFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFsZXJ0KFwi6K+35YWI6YCJ5oup5oC75oiQ57yW5Y+377yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSxcclxuICAgIC8qIOaAu+aIkOe8luWPt+mAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2thc3Mocm93KSB7XHJcbiAgICAgIHRoaXMuYXNUZW1wID0gW107XHJcbiAgICAgIHRoaXMudGVtcGRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy4kcmVmcy5hc1RhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMuYXNUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5hc1RlbXAucHVzaChyb3cpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuYXNUZW1wWzBdLmRldGFpbHMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgLy/pgInkuK3mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLnB1c2goe1xyXG4gICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgcGFydENvZGU6IHRoaXMuYXNUZW1wWzBdLmRldGFpbHNbMF0ucGFydENvZGUsXHJcbiAgICAgICAgICBwYXJ0TnVtOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLnBhcnROdW0sXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWw6IHRoaXMuYXNUZW1wWzBdLmRldGFpbHNbMF0uY2FyTW9kZWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy/kuozmrKHpgInkuK3mj5LlhaXmnIDnu4jmj5DkuqTkuK3nmoRkZXRhaWxzXHJcbiAgICAgIHZhciBqdWRnZVNlYyA9IHRoaXMudGVtcEFzc0NmZ0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICh1KSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlDb2RlXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyBqdWRnZVNlYzpcIiwganVkZ2VTZWMpO1xyXG4gICAgICBpZiAoanVkZ2VTZWMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIGp1ZGdlU2VjWzBdLmRldGFpbHM6XCIsIGp1ZGdlU2VjWzBdLmRldGFpbHMpO1xyXG4gICAgICAgIGp1ZGdlU2VjWzBdLmRldGFpbHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyB0aGlzLnRlbXBkZXRhaWxzXCIsIHRoaXMudGVtcGRldGFpbHMpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMgYXNUZW1wXCIsIHRoaXMuYXNUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDmgLvmiJDnvJblj7flpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdEFzcyhzZWxlY3Rpb24sIHJvdykge1xyXG4gICAgICB0aGlzLmFzVGVtcCA9IFtdOyAvL+a4heepuuW3sumAiVxyXG4gICAgICB0aGlzLnRlbXBkZXRhaWxzID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGM55qEIENoZWNrYm94IOaXtuinpuWPkeeahOS6i+S7tlwiLFxyXG4gICAgICAgIHNlbGVjdGlvbixcclxuICAgICAgICByb3dcclxuICAgICAgKTtcclxuICAgICAgLy8g6YCJ5oup6aG55aSn5LqOMeaXtlxyXG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZGVsX3JvdyA9IHNlbGVjdGlvbi5zaGlmdCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCfmiormlbDnu4TnmoTnrKzkuIDkuKrlhYPntKDku47lhbbkuK3liKDpmaTlkI4nLCBzZWxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuJHJlZnMuYXNUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oZGVsX3JvdywgZmFsc2UpOyAvLyDnlKjkuo7lpJrpgInooajmoLzvvIzliIfmjaLmn5DkuIDooYznmoTpgInkuK3nirbmgIHvvIzlpoLmnpzkvb/nlKjkuobnrKzkuozkuKrlj4LmlbDvvIzliJnmmK/orr7nva7ov5nkuIDooYzpgInkuK3kuI7lkKbvvIhzZWxlY3RlZCDkuLogdHJ1ZSDliJnpgInkuK3vvIlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFzVGVtcC5wdXNoKHNlbGVjdGlvblswXSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGMXCIsIHRoaXMuYXNUZW1wKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmFzVGVtcFswXS5kZXRhaWxzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIC8v6YCJ5Lit5o+S5YWl5Lit6Ze05pWw5o2u5rqQXHJcbiAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKHtcclxuICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLnBhcnRDb2RlLFxyXG4gICAgICAgICAgcGFydE51bTogdGhpcy5hc1RlbXBbMF0uZGV0YWlsc1swXS5wYXJ0TnVtLFxyXG4gICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLmNhck1vZGVsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+S6jOasoemAieS4reaPkuWFpeacgOe7iOaPkOS6pOS4reeahGRldGFpbHNcclxuICAgICAgdmFyIGp1ZGdlU2VjID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIGp1ZGdlU2VjOlwiLCBqdWRnZVNlYyk7XHJcbiAgICAgIGlmIChqdWRnZVNlYy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMganVkZ2VTZWNbMF0uZGV0YWlsczpcIiwganVkZ2VTZWNbMF0uZGV0YWlscyk7XHJcbiAgICAgICAganVkZ2VTZWNbMF0uZGV0YWlscy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRoaXMudGVtcGRldGFpbHNcIiwgdGhpcy50ZW1wZGV0YWlscyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyBhc1RlbXBcIiwgdGhpcy5hc1RlbXApO1xyXG4gICAgfSxcclxuICAgIC8qIOWPs+S+p+aVsOaNrumAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2tSaWdodChyb3cpIHtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTtcclxuICAgICAgdGhpcy4kcmVmcy5yaWdodFRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMucmlnaHRUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAucHVzaChyb3cpO1xyXG4gICAgfSxcclxuICAgIC8qIOW3puS+p+aVsOaNrumAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2tMZWZ0KHJvdykge1xyXG4gICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgIHRoaXMuJHJlZnMubGVmdFRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubGVmdFRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgICB0aGlzLmxlZnRSb3dUZW1wLnB1c2gocm93KTtcclxuICAgIH0sXHJcbiAgICAvKiDlj7PkvqflpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdFJpZ2h0KHNlbGVjdGlvbiwgcm93KSB7XHJcbiAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107IC8v5riF56m65bey6YCJXHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGM55qEIENoZWNrYm94IOaXtuinpuWPkeeahOS6i+S7tlwiLFxyXG4gICAgICAgIHNlbGVjdGlvbixcclxuICAgICAgICByb3dcclxuICAgICAgKTtcclxuICAgICAgLy8g6YCJ5oup6aG55aSn5LqOMeaXtlxyXG4gICAgICAvLyBpZiAoc2VsZWN0aW9uLmxlbmd0aCA+IDEpIHtcclxuICAgICAgLy8gbGV0IGRlbF9yb3cgPSBzZWxlY3Rpb24uc2hpZnQoKTtcclxuICAgICAgLy8gLy8gY29uc29sZS5sb2coJ+aKiuaVsOe7hOeahOesrOS4gOS4quWFg+e0oOS7juWFtuS4reWIoOmZpOWQjicsIHNlbGVjdGlvbik7XHJcbiAgICAgIC8vIHRoaXMuJHJlZnMucmlnaHRUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oZGVsX3JvdywgZmFsc2UpOyAvLyDnlKjkuo7lpJrpgInooajmoLzvvIzliIfmjaLmn5DkuIDooYznmoTpgInkuK3nirbmgIHvvIzlpoLmnpzkvb/nlKjkuobnrKzkuozkuKrlj4LmlbDvvIzliJnmmK/orr7nva7ov5nkuIDooYzpgInkuK3kuI7lkKbvvIhzZWxlY3RlZCDkuLogdHJ1ZSDliJnpgInkuK3vvIlcclxuICAgICAgLy8gfVxyXG4gICAgICBzZWxlY3Rpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjFwiLCB0aGlzLnJpZ2h0Um93VGVtcCk7XHJcbiAgICB9LFxyXG4gICAgLyog5Y+z5L6n5aSN6YCJ5qGG5YWo6YCJ5LqL5Lu2ICovXHJcbiAgICBzZWxlY3RSaWdodEFsbChzZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTsgLy/muIXnqbrlt7LpgIlcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIkgQ2hlY2tib3gg5pe26Kem5Y+R55qE5LqL5Lu2XCIsIHNlbGVjdGlvbik7XHJcbiAgICAgIHNlbGVjdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yaWdodFJvd1RlbXAucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5YWo6YCJXCIsIHRoaXMucmlnaHRSb3dUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDlt6bkvqflpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdExlZnQoc2VsZWN0aW9uLCByb3cpIHtcclxuICAgICAgdGhpcy5sZWZ0Um93VGVtcCA9IFtdOyAvL+a4heepuuW3sumAiVxyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjOeahCBDaGVja2JveCDml7bop6blj5HnmoTkuovku7ZcIixcclxuICAgICAgICBzZWxlY3Rpb24sXHJcbiAgICAgICAgcm93XHJcbiAgICAgICk7XHJcbiAgICAgIC8vIC8vIOmAieaLqemhueWkp+S6jjHml7ZcclxuICAgICAgLy8gaWYgKHNlbGVjdGlvbi5sZW5ndGggPiAxKSB7XHJcbiAgICAgIC8vIGxldCBkZWxfcm93ID0gc2VsZWN0aW9uLnNoaWZ0KCk7XHJcbiAgICAgIC8vIC8vIGNvbnNvbGUubG9nKCfmiormlbDnu4TnmoTnrKzkuIDkuKrlhYPntKDku47lhbbkuK3liKDpmaTlkI4nLCBzZWxlY3Rpb24pO1xyXG4gICAgICAvLyB0aGlzLiRyZWZzLnJpZ2h0VGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKGRlbF9yb3csIGZhbHNlKTsgLy8g55So5LqO5aSa6YCJ6KGo5qC877yM5YiH5o2i5p+Q5LiA6KGM55qE6YCJ5Lit54q25oCB77yM5aaC5p6c5L2/55So5LqG56ys5LqM5Liq5Y+C5pWw77yM5YiZ5piv6K6+572u6L+Z5LiA6KGM6YCJ5Lit5LiO5ZCm77yIc2VsZWN0ZWQg5Li6IHRydWUg5YiZ6YCJ5Lit77yJXHJcbiAgICAgIC8vIH1cclxuICAgICAgc2VsZWN0aW9uLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmxlZnRSb3dUZW1wLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjFwiLCB0aGlzLmxlZnRSb3dUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDlt6bkvqflpI3pgInmoYblhajpgInkuovku7YgKi9cclxuICAgIHNlbGVjdExlZnRBbGwoc2VsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMubGVmdFJvd1RlbXAgPSBbXTsgLy/muIXnqbrlt7LpgIlcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIkgQ2hlY2tib3gg5pe26Kem5Y+R55qE5LqL5Lu2XCIsIHNlbGVjdGlvbik7XHJcbiAgICAgIHNlbGVjdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIlcIiwgdGhpcy5sZWZ0Um93VGVtcCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0dmVoaWNsZU1vZGVsKCkge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIiwgdGhpcy52ZWhpY2xlTW9kZWxRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy52ZWhpY2xlTW9kZWxMaXN0ID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgIH0sXHJcbiAgICB2YWx1ZXNlbGVjdENoYW5nZSgpIHt9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5AaW1wb3J0IFwiLi4vLi4vLi4vcGctZmlzL3N0eWxlcy9jcm10YWJsZS5zY3NzXCI7XHJcbjwvc3R5bGU+XHJcblxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02YmY2ODA1MCZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YmY2ODA1MCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjZiZjY4MDUwXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///67e9\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"6e0c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomConversionIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomConversionSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomConversionRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomConversionUpdate; });\n/* unused harmony export crmUomConversionDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmUomConversionIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion/list\', data);\n} // 创建\n\nfunction crmUomConversionSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion\', data);\n} // 根据id获取\n\nfunction crmUomConversionRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-conversion/\' + id);\n} // 根据id修改\n\nfunction crmUomConversionUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom-conversion/\' + id, data);\n} // 删除\n\nfunction crmUomConversionDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbUNvbnZlcnNpb24vdW9tQ29udmVyc2lvbi5qcz82ZTBjIl0sIm5hbWVzIjpbImNybVVvbUNvbnZlcnNpb25JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tQ29udmVyc2lvblNhdmUiLCJjcm1Vb21Db252ZXJzaW9uUmVhZCIsImlkIiwiZ2V0cyIsImNybVVvbUNvbnZlcnNpb25VcGRhdGUiLCJwdXRzIiwiY3JtVW9tQ29udmVyc2lvbkRlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EscUJBQVQsQ0FBK0JDLElBQS9CLEVBQXFDO0FBQzFDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBWixFQUFnREYsSUFBaEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxvQkFBVCxDQUE4QkgsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDhCQUFaLEVBQTJDRixJQUEzQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLG9CQUFULENBQThCQyxFQUE5QixFQUFrQztBQUN2QyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsa0NBQWdDRCxFQUEzQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLHNCQUFULENBQWdDRixFQUFoQyxFQUFtQ0wsSUFBbkMsRUFBeUM7QUFDOUMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLGtDQUFnQ0gsRUFBM0MsRUFBOENMLElBQTlDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1Msc0JBQVQsQ0FBZ0NULElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxxQ0FBWixFQUFrREYsSUFBbEQsQ0FBUDtBQUNEIiwiZmlsZSI6IjZlMGMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tQ29udmVyc2lvblNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbicsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tQ29udmVyc2lvblJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWNvbnZlcnNpb24vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6e0c\n')},"6f0b":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdFOTRBNUY2RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdFOTRBNUY3RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0U5NEE1RjRGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0U5NEE1RjVGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4t60rSAAAAkUlEQVR42mL8//8/AzUBEwOVAQuMsXr1arINCQ0NJdmFOtT0ch0QXwbiepK8jAOADIH5B0Y3kuvCGqghjlC+I5RfQ66BD6CGvIbyX0P5D8j18hIsYq9xiNMuHQ49A0nN2P/JdSHjoPHycyC2IVKvNRC/IJQOU0AFDxBLEGHgUyBOJmTgNiCWpMTLjIO+xAYIMABJgBzD8GiSjgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZXhwb3J0LnBuZz81YzJiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI2ZjBiLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBVUNBWUFBQUNOaVIwTkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamRGT1RSQk5VWTJSakV6UlRFeFJUaENNekU0UmpBeU16UXdRVGM1UmpRM0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qZEZPVFJCTlVZM1JqRXpSVEV4UlRoQ016RTRSakF5TXpRd1FUYzVSalEzSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk4wVTVORUUxUmpSR01UTkZNVEZGT0VJek1UaEdNREl6TkRCQk56bEdORGNpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TjBVNU5FRTFSalZHTVRORk1URkZPRUl6TVRoR01ESXpOREJCTnpsR05EY2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejR0NjByU0FBQUFrVWxFUVZSNDJtTDgvLzgvQXpVQkV3T1ZBUXVNc1hyMWFySU5DUTBOSmRtRk90VDBjaDBRWHdiaWVwSzhqQU9BRElINUIwWTNrdXZDR3FnaGpsQytJNVJmUTY2QkQ2Q0d2SWJ5WDBQNUQ4ajE4aElzWXE5eGlOTXVIUTQ5QTBuTjJQL0pkU0hqb1BIeWN5QzJJVkt2TlJDL0lKUU9VMEFGRHhCTEVHSGdVeUJPSm1UZ05pQ1dwTVRMaklPK3hBWUlNQUJKZ0J6RDhHaVNqZ0FBQUFCSlJVNUVya0pnZ2c9PVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6f0b\n')},"731e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/OTk4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI3MzFlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///731e\n")},"7ae2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmLocIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmLocSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmLocRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmLocUpdate; });\n/* unused harmony export crmLocDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmLocIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc/list\', data);\n} // 创建\n\nfunction crmLocSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc\', data);\n} // 根据id获取\n\nfunction crmLocRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/loc/\' + id);\n} // 根据id修改\n\nfunction crmLocUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/loc/\' + id, data);\n} // 删除\n\nfunction crmLocDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2xvYy9sb2MuanM/N2FlMiJdLCJuYW1lcyI6WyJjcm1Mb2NJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtTG9jU2F2ZSIsImNybUxvY1JlYWQiLCJpZCIsImdldHMiLCJjcm1Mb2NVcGRhdGUiLCJwdXRzIiwiY3JtTG9jRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6IjdhZTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2xvYy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTG9jU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2xvYycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTG9jUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2xvYy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2xvYy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9sb2MvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7ae2\n')},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},8889:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmAreaItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmAreaItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmAreaItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmAreaItemUpdate; });\n/* unused harmony export crmAreaItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmAreaItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item/list\', data);\n} // 创建\n\nfunction crmAreaItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item\', data);\n} // 根据id获取\n\nfunction crmAreaItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/area-item/\' + id);\n} // 根据id修改\n\nfunction crmAreaItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/area-item/\' + id, data);\n} // 删除\n\nfunction crmAreaItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2FyZWFJdGVtL2FyZWFJdGVtLmpzPzg4ODkiXSwibmFtZXMiOlsiY3JtQXJlYUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQXJlYUl0ZW1TYXZlIiwiY3JtQXJlYUl0ZW1SZWFkIiwiaWQiLCJnZXRzIiwiY3JtQXJlYUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtQXJlYUl0ZW1EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QiLCJmaWxlIjoiODg4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2FyZWEtaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUl0ZW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvYXJlYS1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8889\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8b26":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmStrategyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmStrategySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmStrategyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmStrategyUpdate; });\n/* unused harmony export crmStrategyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmStrategyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy/list\', data);\n} // 创建\n\nfunction crmStrategySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy\', data);\n} // 根据id获取\n\nfunction crmStrategyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/strategy/\' + id);\n} // 根据id修改\n\nfunction crmStrategyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/strategy/\' + id, data);\n} // 删除\n\nfunction crmStrategyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N0cmF0ZWd5L3N0cmF0ZWd5LmpzPzhiMjYiXSwibmFtZXMiOlsiY3JtU3RyYXRlZ3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3RyYXRlZ3lTYXZlIiwiY3JtU3RyYXRlZ3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3RyYXRlZ3lVcGRhdGUiLCJwdXRzIiwiY3JtU3RyYXRlZ3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiOGIyNi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdHJhdGVneS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3RyYXRlZ3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3RyYXRlZ3knLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N0cmF0ZWd5LycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdHJhdGVneS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdHJhdGVneURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N0cmF0ZWd5L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8b26\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"8d36":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmAreaIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmAreaSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmAreaRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmAreaUpdate; });\n/* unused harmony export crmAreaDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmAreaIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area/list\', data);\n} // 创建\n\nfunction crmAreaSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area\', data);\n} // 根据id获取\n\nfunction crmAreaRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/area/\' + id);\n} // 根据id修改\n\nfunction crmAreaUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/area/\' + id, data);\n} // 删除\n\nfunction crmAreaDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2FyZWEvYXJlYS5qcz84ZDM2Il0sIm5hbWVzIjpbImNybUFyZWFJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQXJlYVNhdmUiLCJjcm1BcmVhUmVhZCIsImlkIiwiZ2V0cyIsImNybUFyZWFVcGRhdGUiLCJwdXRzIiwiY3JtQXJlYURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiI4ZDM2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYXJlYS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1BcmVhUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2FyZWEvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvYXJlYS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1BcmVhRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYXJlYS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8d36\n')},"8d6c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d298");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlP2E2ZTAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBIiwiZmlsZSI6IjhkNmMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P3JlZi0tOS1vbmVPZi0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tOS1vbmVPZi0xLTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU5M2U0YzY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8d6c\n')},"8e88":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomUpdate; });\n/* unused harmony export crmUomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmUomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom/list\', data);\n} // 创建\n\nfunction crmUomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom\', data);\n} // 根据id获取\n\nfunction crmUomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom/\' + id);\n} // 根据id修改\n\nfunction crmUomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom/\' + id, data);\n} // 删除\n\nfunction crmUomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbS91b20uanM/OGU4OCJdLCJuYW1lcyI6WyJjcm1Vb21JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tU2F2ZSIsImNybVVvbVJlYWQiLCJpZCIsImdldHMiLCJjcm1Vb21VcGRhdGUiLCJwdXRzIiwiY3JtVW9tRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6IjhlODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3VvbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3VvbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8e88\n')},"928a":function(module){eval('module.exports = JSON.parse("{\\"leads\\":{\\"name\\":\\"公司\\",\\"type\\":\\"leads\\"},\\"strategy\\":{\\"name\\":\\"策略\\",\\"type\\":\\"strategy\\"},\\"rule\\":{\\"name\\":\\"规则\\",\\"type\\":\\"rule\\"},\\"strategyRules\\":{\\"name\\":\\"策略规则\\",\\"type\\":\\"strategyRules\\"},\\"org\\":{\\"name\\":\\"组织\\",\\"type\\":\\"org\\"},\\"uom\\":{\\"name\\":\\"计量单位\\",\\"type\\":\\"uom\\"},\\"uomGroup\\":{\\"name\\":\\"计量单位组\\",\\"type\\":\\"uomGroup\\"},\\"slg\\":{\\"name\\":\\"库位组\\",\\"type\\":\\"slg\\"},\\"item\\":{\\"name\\":\\"物品\\",\\"type\\":\\"item\\"},\\"slgItem\\":{\\"name\\":\\"库位组物品\\",\\"type\\":\\"slgItem\\"},\\"verification\\":{\\"name\\":\\"验证\\",\\"type\\":\\"verification\\"},\\"stage\\":{\\"name\\":\\"步骤\\",\\"type\\":\\"stage\\"},\\"area\\":{\\"name\\":\\"区域\\",\\"type\\":\\"area\\"},\\"areaItem\\":{\\"name\\":\\"区域物品\\",\\"type\\":\\"areaItem\\"},\\"currency\\":{\\"name\\":\\"货币\\",\\"type\\":\\"currency\\"},\\"currencyExchange\\":{\\"name\\":\\"货币换算\\",\\"type\\":\\"currencyExchange\\"},\\"customer\\":{\\"name\\":\\"客户\\",\\"type\\":\\"customer\\"},\\"customerBom\\":{\\"name\\":\\"客户物品产品结构\\",\\"type\\":\\"customerBom\\"},\\"customerItem\\":{\\"name\\":\\"客户物品\\",\\"type\\":\\"customerItem\\"},\\"eqptType\\":{\\"name\\":\\"器具类型\\",\\"type\\":\\"eqptType\\"},\\"eqptTypeItem\\":{\\"name\\":\\"器具类型物品\\",\\"type\\":\\"eqptTypeItem\\"},\\"itemTransTypeInventoryRoute\\":{\\"name\\":\\"物品事务类型物流路线分配\\",\\"type\\":\\"itemTransTypeInventoryRoute\\"},\\"itemTransTypeOpStrategy\\":{\\"name\\":\\"物品事务类型工序策略分配\\",\\"type\\":\\"itemTransTypeOpStrategy\\"},\\"loc\\":{\\"name\\":\\"库位\\",\\"type\\":\\"loc\\"},\\"machine\\":{\\"name\\":\\"机器\\",\\"type\\":\\"machine\\"},\\"param\\":{\\"name\\":\\"参数\\",\\"type\\":\\"param\\"},\\"port\\":{\\"name\\":\\"收货口\\",\\"type\\":\\"port\\"},\\"prodLine\\":{\\"name\\":\\"生产线\\",\\"type\\":\\"prodLine\\"},\\"prodLineItem\\":{\\"name\\":\\"生产线物品\\",\\"type\\":\\"prodLineItem\\"},\\"project\\":{\\"name\\":\\"项目\\",\\"type\\":\\"project\\"},\\"shift\\":{\\"name\\":\\"班次\\",\\"type\\":\\"shift\\"},\\"supplier\\":{\\"name\\":\\"供应商\\",\\"type\\":\\"supplier\\"},\\"supplierItem\\":{\\"name\\":\\"供应商物品\\",\\"type\\":\\"supplierItem\\"},\\"team\\":{\\"name\\":\\"班组\\",\\"type\\":\\"team\\"},\\"uomConversion\\":{\\"name\\":\\"计量单位转换\\",\\"type\\":\\"uomConversion\\"},\\"purchaseUomConversion\\":{\\"name\\":\\"采购计量单位转换\\",\\"type\\":\\"purchaseUomConversion\\"},\\"productionUomConversion\\":{\\"name\\":\\"生产计量单位转换\\",\\"type\\":\\"productionUomConversion\\"},\\"stockUomConversion\\":{\\"name\\":\\"库存计量单位转换\\",\\"type\\":\\"stockUomConversion\\"},\\"sellUomConversion\\":{\\"name\\":\\"销售计量单位转换\\",\\"type\\":\\"sellUomConversion\\"},\\"wlg\\":{\\"name\\":\\"工作组\\",\\"type\\":\\"wlg\\"},\\"wlgItem\\":{\\"name\\":\\"工作组物品\\",\\"type\\":\\"wlgItem\\"},\\"workCalendar\\":{\\"name\\":\\"工作日历\\",\\"type\\":\\"workCalendar\\"},\\"workCenter\\":{\\"name\\":\\"工作中心\\",\\"type\\":\\"workCenter\\"},\\"bom\\":{\\"name\\":\\"产品结构\\",\\"type\\":\\"bom\\"},\\"stdCostPriceSheet\\":{\\"name\\":\\"标准成本价格单\\",\\"type\\":\\"StdCostPriceSheet\\"},\\"stdCostPriceDetail\\":{\\"name\\":\\"标准成本价格单明细\\",\\"type\\":\\"StdCostPriceDetail\\"},\\"inventoryRoute\\":{\\"name\\":\\"物流路线\\",\\"type\\":\\"InventoryRoute\\"},\\"inventoryRouteDetail\\":{\\"name\\":\\"物流路线明细\\",\\"type\\":\\"InventoryRouteDetail\\"},\\"purchasePriceSheet\\":{\\"name\\":\\"采购价格单\\",\\"type\\":\\"PurchasePriceSheet\\"},\\"purchasePriceDetail\\":{\\"name\\":\\"采购价格单明细\\",\\"type\\":\\"PurchasePriceDetail\\"},\\"route\\":{\\"name\\":\\"工艺路线\\",\\"type\\":\\"Route\\"},\\"routeDetail\\":{\\"name\\":\\"工艺路线明细\\",\\"type\\":\\"RouteDetail\\"},\\"salePriceSheet\\":{\\"name\\":\\"销售价格单\\",\\"type\\":\\"SalePriceSheet\\"},\\"salePriceDetail\\":{\\"name\\":\\"销售价格单明细\\",\\"type\\":\\"SalePriceDetail\\"},\\"dicts\\":{\\"name\\":\\"字典\\",\\"type\\":\\"Dict\\"},\\"dictssub\\":{\\"name\\":\\"字典项\\",\\"type\\":\\"dictssub\\"},\\"transaction\\":{\\"name\\":\\"事务类型\\",\\"type\\":\\"transaction\\"},\\"verificationStages\\":{\\"name\\":\\"验证步骤配置\\",\\"type\\":\\"verificationStages\\"},\\"interfaceCalendar\\":{\\"name\\":\\"接口日历\\",\\"type\\":\\"interfaceCalendar\\"}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5MjhhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///928a\n')},"96c3":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony default export */ __webpack_exports__["a"] = ({\n leads: 1,\n customer: 2,\n contacts: 3,\n product: 4,\n business: 5,\n contract: 6,\n receivables: 7,\n // 公海 8\n receivables_plan: 8,\n pool: 9\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsLmpzPzk2YzMiXSwibmFtZXMiOlsibGVhZHMiLCJjdXN0b21lciIsImNvbnRhY3RzIiwicHJvZHVjdCIsImJ1c2luZXNzIiwiY29udHJhY3QiLCJyZWNlaXZhYmxlcyIsInJlY2VpdmFibGVzX3BsYW4iLCJwb29sIl0sIm1hcHBpbmdzIjoiQUFBZTtBQUNiQSxPQUFLLEVBQUUsQ0FETTtBQUViQyxVQUFRLEVBQUUsQ0FGRztBQUdiQyxVQUFRLEVBQUUsQ0FIRztBQUliQyxTQUFPLEVBQUUsQ0FKSTtBQUtiQyxVQUFRLEVBQUUsQ0FMRztBQU1iQyxVQUFRLEVBQUUsQ0FORztBQU9iQyxhQUFXLEVBQUUsQ0FQQTtBQVFiO0FBQ0FDLGtCQUFnQixFQUFFLENBVEw7QUFVYkMsTUFBSSxFQUFFO0FBVk8sQ0FBZiIsImZpbGUiOiI5NmMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxlYWRzOiAxLFxyXG4gIGN1c3RvbWVyOiAyLFxyXG4gIGNvbnRhY3RzOiAzLFxyXG4gIHByb2R1Y3Q6IDQsXHJcbiAgYnVzaW5lc3M6IDUsXHJcbiAgY29udHJhY3Q6IDYsXHJcbiAgcmVjZWl2YWJsZXM6IDcsXHJcbiAgLy8g5YWs5rW3IDhcclxuICByZWNlaXZhYmxlc19wbGFuOiA4LFxyXG4gIHBvb2w6IDlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///96c3\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},"97d9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmInventoryRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return crmInventoryRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return crmInventoryRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return crmInventoryRouteUpdate; });\n/* unused harmony export crmInventoryRouteDelete */\n/* unused harmony export crmInventoryRouteDetailListRead */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmInventoryRouteDetailRead; });\n/* unused harmony export crmInventoryRouteDetailIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmInventoryRouteDetailAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmInventoryRouteDetailUpdate; });\n/* unused harmony export crmInventoryRouteDetailDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmInventoryRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/list\', data);\n} // 创建\n\nfunction crmInventoryRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route\', data);\n} // 根据id获取 crmInventoryRouteRead\n\nfunction crmInventoryRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id);\n} // 根据id修改\n\nfunction crmInventoryRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/inventory-route/\' + id, data);\n} // 删除\n\nfunction crmInventoryRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/delete\', data);\n} //获取子项列表\n\nfunction crmInventoryRouteDetailListRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id + \'/details\');\n} //按照主表ID和子表ID获取子项详细信息\n\nfunction crmInventoryRouteDetailRead(id, detailId) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id + \'/details/\' + detailId);\n} //按筛选条件获取子项列表\n\nfunction crmInventoryRouteDetailIndex(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details\', data);\n} //新增子项\n\nfunction crmInventoryRouteDetailAdd(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/add\', data);\n} //修改子项\n\nfunction crmInventoryRouteDetailUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/update\', data);\n} //删除子项\n\nfunction crmInventoryRouteDetailDelete(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2ludmVudG9yeVJvdXRlL2ludmVudG9yeVJvdXRlLmpzPzk3ZDkiXSwibmFtZXMiOlsiY3JtSW52ZW50b3J5Um91dGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSW52ZW50b3J5Um91dGVTYXZlIiwiY3JtSW52ZW50b3J5Um91dGVSZWFkIiwiaWQiLCJnZXRzIiwiY3JtSW52ZW50b3J5Um91dGVVcGRhdGUiLCJwdXRzIiwiY3JtSW52ZW50b3J5Um91dGVEZWxldGUiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbExpc3RSZWFkIiwiY3JtSW52ZW50b3J5Um91dGVEZXRhaWxSZWFkIiwiZGV0YWlsSWQiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbEluZGV4IiwiY3JtSW52ZW50b3J5Um91dGVEZXRhaWxBZGQiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbFVwZGF0ZSIsImNybUludmVudG9yeVJvdXRlRGV0YWlsRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxzQkFBVCxDQUFnQ0MsSUFBaEMsRUFBc0M7QUFDM0MsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLHFCQUFULENBQStCSCxJQUEvQixFQUFxQztBQUMxQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksK0JBQVosRUFBNENGLElBQTVDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0kscUJBQVQsQ0FBK0JDLEVBQS9CLEVBQW1DO0FBQ3hDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxtQ0FBaUNELEVBQTVDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsdUJBQVQsQ0FBaUNGLEVBQWpDLEVBQW9DTCxJQUFwQyxFQUEwQztBQUMvQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsbUNBQWlDSCxFQUE1QyxFQUErQ0wsSUFBL0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyx1QkFBVCxDQUFpQ1QsSUFBakMsRUFBdUM7QUFDNUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHNDQUFaLEVBQW1ERixJQUFuRCxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNVLCtCQUFULENBQXlDTCxFQUF6QyxFQUE2QztBQUNsRCxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsbUNBQWlDRCxFQUFqQyxHQUFvQyxVQUEvQyxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNNLDJCQUFULENBQXFDTixFQUFyQyxFQUF3Q08sUUFBeEMsRUFBa0Q7QUFDdkQsU0FBT1gsNERBQUssQ0FBQ0ssSUFBTixDQUFXLG1DQUFpQ0QsRUFBakMsR0FBb0MsV0FBcEMsR0FBZ0RPLFFBQTNELENBQVA7QUFDRCxDLENBRUQ7O0FBQ08sU0FBU0MsNEJBQVQsQ0FBc0NSLEVBQXRDLEVBQXlDTCxJQUF6QyxFQUErQztBQUNwRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksbUNBQWlDRyxFQUFqQyxHQUFvQyxVQUFoRCxFQUEyREwsSUFBM0QsQ0FBUDtBQUNELEMsQ0FFRDs7QUFDTyxTQUFTYywwQkFBVCxDQUFvQ1QsRUFBcEMsRUFBdUNMLElBQXZDLEVBQTZDO0FBQ2xELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBaUNHLEVBQWpDLEdBQW9DLGNBQWhELEVBQStETCxJQUEvRCxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNlLDZCQUFULENBQXVDVixFQUF2QyxFQUEwQ0wsSUFBMUMsRUFBZ0Q7QUFDckQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFpQ0csRUFBakMsR0FBb0MsaUJBQWhELEVBQWtFTCxJQUFsRSxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNnQiw2QkFBVCxDQUF1Q1gsRUFBdkMsRUFBMENMLElBQTFDLEVBQWdEO0FBQ3JELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBaUNHLEVBQWpDLEdBQW9DLGlCQUFoRCxFQUFrRUwsSUFBbEUsQ0FBUDtBQUNEIiwiZmlsZSI6Ijk3ZDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5YgICAgY3JtSW52ZW50b3J5Um91dGVSZWFkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSW52ZW50b3J5Um91dGVVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuXHJcbi8v6I635Y+W5a2Q6aG55YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbExpc3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlLycraWQrJy9kZXRhaWxzJylcclxufVxyXG5cclxuLy/mjInnhafkuLvooahJROWSjOWtkOihqElE6I635Y+W5a2Q6aG56K+m57uG5L+h5oGvXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbFJlYWQoaWQsZGV0YWlsSWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMvJytkZXRhaWxJZClcclxufVxyXG5cclxuLy/mjInnrZvpgInmnaHku7bojrflj5blrZDpobnliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUludmVudG9yeVJvdXRlRGV0YWlsSW5kZXgoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMnLGRhdGEpXHJcbn1cclxuXHJcbi8v5paw5aKe5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbEFkZChpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS8nK2lkKycvZGV0YWlscy9hZGQnLGRhdGEpXHJcbn1cclxuIFxyXG4vL+S/ruaUueWtkOmhuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSW52ZW50b3J5Um91dGVEZXRhaWxVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMvdXBkYXRlJyxkYXRhKVxyXG59XHJcbiBcclxuLy/liKDpmaTlrZDpoblcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUludmVudG9yeVJvdXRlRGV0YWlsRGVsZXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlLycraWQrJy9kZXRhaWxzL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///97d9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a20b:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSlgIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSlgSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSlgRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSlgUpdate; });\n/* unused harmony export crmSlgDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSlgIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg/list\', data);\n} // 创建\n\nfunction crmSlgSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg\', data);\n} // 根据id获取\n\nfunction crmSlgRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/slg/\' + id);\n} // 根据id修改\n\nfunction crmSlgUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/slg/\' + id, data);\n} // 删除\n\nfunction crmSlgDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3NsZy9zbGcuanM/YTIwYiJdLCJuYW1lcyI6WyJjcm1TbGdJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU2xnU2F2ZSIsImNybVNsZ1JlYWQiLCJpZCIsImdldHMiLCJjcm1TbGdVcGRhdGUiLCJwdXRzIiwiY3JtU2xnRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6ImEyMGIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NsZy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2xnU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NsZycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2xnUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3NsZy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3NsZy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zbGcvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a20b\n')},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a537:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProdLineIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProdLineSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProdLineRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProdLineUpdate; });\n/* unused harmony export crmProdLineDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.ProdLine;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmProdLineIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/prodLine/list\',data)\n} // 创建\n\nfunction crmProdLineSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/prodLine\',data)\n} //根据id获取单条数据\n\nfunction crmProdLineRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/prodLine/\'+id)\n} // 根据id修改\n\nfunction crmProdLineUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/prodLine/\'+id,data)\n} // 删除\n\nfunction crmProdLineDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/prodLine/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2RMaW5lL3Byb2RMaW5lLmpzP2E1MzciXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJQcm9kTGluZSIsImZ1bmNzIiwiY3JtUHJvZExpbmVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiTGlzdEZ1bmMiLCJjcm1Qcm9kTGluZVNhdmUiLCJjcm1Qcm9kTGluZVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVByb2RMaW5lVXBkYXRlIiwicHV0cyIsImNybVByb2RMaW5lRGVsZXRlIiwiRGVsZXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsTUFBTSxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxXQUFoQztBQUNBLElBQU1DLE9BQU8sR0FBQ04sMkNBQVMsQ0FBQ08sUUFBVixDQUFtQkMsUUFBakM7QUFDQSxJQUFNQyxLQUFLLEdBQUNULDJDQUFTLENBQUNTLEtBQXRCLEMsQ0FFQTs7QUFDTyxTQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFDckMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURxQyxDQUVyQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxlQUFULENBQXlCSixJQUF6QixFQUErQjtBQUNwQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxlQUFULENBQXlCQyxFQUF6QixFQUE2QjtBQUNsQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURrQyxDQUVsQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxpQkFBVCxDQUEyQkgsRUFBM0IsRUFBOEJOLElBQTlCLEVBQW9DO0FBQ3pDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUR5QyxDQUV6QztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxpQkFBVCxDQUEyQlgsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURzQyxDQUV0QztBQUNEIiwiZmlsZSI6ImE1MzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLlByb2RMaW5lO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZScsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcHJvZExpbmUvZGVsZXRlJyxkYXRhKVxyXG59XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a537\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},aabf:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemUpdate; });\n/* unused harmony export crmItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item/list\', data);\n} // 创建\n\nfunction crmItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item\', data);\n} // 根据id获取\n\nfunction crmItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item/\' + id);\n} // 根据id修改\n\nfunction crmItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item/\' + id, data);\n} // 删除\n\nfunction crmItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW0vaXRlbS5qcz9hYWJmIl0sIm5hbWVzIjpbImNybUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVNhdmUiLCJjcm1JdGVtUmVhZCIsImlkIiwiZ2V0cyIsImNybUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtSXRlbURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJhYWJmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pdGVtJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0vJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///aabf\n')},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b490:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmParamIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmParamSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmParamRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmParamUpdate; });\n/* unused harmony export crmParamDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmParamIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param/list\', data);\n} // 创建\n\nfunction crmParamSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param\', data);\n} // 根据id获取\n\nfunction crmParamRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/param/\' + id);\n} // 根据id修改\n\nfunction crmParamUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/param/\' + id, data);\n} // 删除\n\nfunction crmParamDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3BhcmFtL3BhcmFtLmpzP2I0OTAiXSwibmFtZXMiOlsiY3JtUGFyYW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUGFyYW1TYXZlIiwiY3JtUGFyYW1SZWFkIiwiaWQiLCJnZXRzIiwiY3JtUGFyYW1VcGRhdGUiLCJwdXRzIiwiY3JtUGFyYW1EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxZQUFULENBQXNCSCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkscUJBQVosRUFBa0NGLElBQWxDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksWUFBVCxDQUFzQkMsRUFBdEIsRUFBMEI7QUFDL0IsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHlCQUF1QkQsRUFBbEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxjQUFULENBQXdCRixFQUF4QixFQUEyQkwsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHlCQUF1QkgsRUFBbEMsRUFBcUNMLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsY0FBVCxDQUF3QlQsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QiLCJmaWxlIjoiYjQ5MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wYXJhbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUGFyYW1TYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcGFyYW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3BhcmFtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wYXJhbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1QYXJhbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3BhcmFtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///b490\n')},b654:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemTransTypeOpStrategyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemTransTypeOpStrategySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemTransTypeOpStrategyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemTransTypeOpStrategyUpdate; });\n/* unused harmony export crmItemTransTypeOpStrategyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemTransTypeOpStrategyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy/list\', data);\n} // 创建\n\nfunction crmItemTransTypeOpStrategySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy\', data);\n} // 根据id获取\n\nfunction crmItemTransTypeOpStrategyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item-trans-type-op-strategy/\' + id);\n} // 根据id修改\n\nfunction crmItemTransTypeOpStrategyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item-trans-type-op-strategy/\' + id, data);\n} // 删除\n\nfunction crmItemTransTypeOpStrategyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW1UcmFuc1R5cGVPcFN0cmF0ZWd5L2l0ZW1UcmFuc1R5cGVPcFN0cmF0ZWd5LmpzP2I2NTQiXSwibmFtZXMiOlsiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lTYXZlIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lVcGRhdGUiLCJwdXRzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLCtCQUFULENBQXlDQyxJQUF6QyxFQUErQztBQUNwRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksZ0RBQVosRUFBNkRGLElBQTdELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csOEJBQVQsQ0FBd0NILElBQXhDLEVBQThDO0FBQ25ELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwyQ0FBWixFQUF3REYsSUFBeEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSw4QkFBVCxDQUF3Q0MsRUFBeEMsRUFBNEM7QUFDakQsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLCtDQUE2Q0QsRUFBeEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxnQ0FBVCxDQUEwQ0YsRUFBMUMsRUFBNkNMLElBQTdDLEVBQW1EO0FBQ3hELFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVywrQ0FBNkNILEVBQXhELEVBQTJETCxJQUEzRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLGdDQUFULENBQTBDVCxJQUExQyxFQUFnRDtBQUNyRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksa0RBQVosRUFBK0RGLElBQS9ELENBQVA7QUFDRCIsImZpbGUiOiJiNjU0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFucy10eXBlLW9wLXN0cmF0ZWd5JyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlT3BTdHJhdGVneVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pdGVtLXRyYW5zLXR5cGUtb3Atc3RyYXRlZ3kvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlT3BTdHJhdGVneURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///b654\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},b758:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmEqptTypeItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmEqptTypeItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmEqptTypeItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmEqptTypeItemUpdate; });\n/* unused harmony export crmEqptTypeItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmEqptTypeItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item/list\', data);\n} // 创建\n\nfunction crmEqptTypeItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item\', data);\n} // 根据id获取\n\nfunction crmEqptTypeItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/eqpt-type-item/\' + id);\n} // 根据id修改\n\nfunction crmEqptTypeItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/eqpt-type-item/\' + id, data);\n} // 删除\n\nfunction crmEqptTypeItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2VxcHRUeXBlSXRlbS9lcXB0VHlwZUl0ZW0uanM/Yjc1OCJdLCJuYW1lcyI6WyJjcm1FcXB0VHlwZUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtRXFwdFR5cGVJdGVtU2F2ZSIsImNybUVxcHRUeXBlSXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1FcXB0VHlwZUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtRXFwdFR5cGVJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFaLEVBQWdERixJQUFoRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxrQ0FBZ0NELEVBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsa0NBQWdDSCxFQUEzQyxFQUE4Q0wsSUFBOUMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHFDQUFaLEVBQWtERixJQUFsRCxDQUFQO0FBQ0QiLCJmaWxlIjoiYjc1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUtaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVJdGVtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2VxcHQtdHlwZS1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b758\n')},b9f0:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCurrencyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCurrencySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCurrencyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCurrencyUpdate; });\n/* unused harmony export crmCurrencyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCurrencyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency/list\', data);\n} // 创建\n\nfunction crmCurrencySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency\', data);\n} // 根据id获取\n\nfunction crmCurrencyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/currency/\' + id);\n} // 根据id修改\n\nfunction crmCurrencyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/currency/\' + id, data);\n} // 删除\n\nfunction crmCurrencyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1cnJlbmN5L2N1cnJlbmN5LmpzP2I5ZjAiXSwibmFtZXMiOlsiY3JtQ3VycmVuY3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VycmVuY3lTYXZlIiwiY3JtQ3VycmVuY3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtQ3VycmVuY3lVcGRhdGUiLCJwdXRzIiwiY3JtQ3VycmVuY3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiYjlmMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VycmVuY3knLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2N1cnJlbmN5LycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1cnJlbmN5L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///b9f0\n')},bb9a:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export filedGetField */\n/* unused harmony export crmSettingRecordListAPI */\n/* unused harmony export filedGetInformation */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return filterIndexfields; });\n/* unused harmony export crmSceneIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return crmOrgIndex; });\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"b775\");\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"eeb9\");\n //ux获取列表字段接口使用MOCK\n\nfunction filedGetField() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/queryField',\n method: 'get'\n });\n}\n/**\r\n * 记录类型 数据 与系统设置系统(repeat)\r\n */\n\nfunction crmSettingRecordListAPI() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/queryRecordOptions',\n method: 'get'\n });\n}\n/**\r\n * 详情页基本信息\r\n * @param {*} data\r\n */\n\nfunction filedGetInformation(data) {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/information',\n method: 'get',\n params: data\n });\n} // crm 自定义字段(高级筛选)\n\nfunction filterIndexfields(data) {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/scene/queryField',\n method: 'get',\n params: data\n });\n}\nfunction crmSceneIndex() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/system/scene/getAllsceneList',\n method: 'get'\n });\n}\n\n/*axios*/\n\nfunction crmOrgIndex() {\n return _axios_index__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].gets('/api/base/userbranch/current/branches');\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3V4L2NvbW1vbi5qcz9iYjlhIl0sIm5hbWVzIjpbImZpbGVkR2V0RmllbGQiLCJyZXF1ZXN0IiwidXJsIiwibWV0aG9kIiwiY3JtU2V0dGluZ1JlY29yZExpc3RBUEkiLCJmaWxlZEdldEluZm9ybWF0aW9uIiwiZGF0YSIsInBhcmFtcyIsImZpbHRlckluZGV4ZmllbGRzIiwiY3JtU2NlbmVJbmRleCIsImNybU9yZ0luZGV4IiwiYXhpb3MiLCJnZXRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsYUFBVCxHQUF5QjtBQUM5QixTQUFPQyxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSxrQ0FEUTtBQUViQyxVQUFNLEVBQUU7QUFGSyxHQUFELENBQWQ7QUFJRDtBQUNEO0FBQ0E7QUFDQTs7QUFDTyxTQUFTQyx1QkFBVCxHQUFtQztBQUN4QyxTQUFPSCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSwwQ0FEUTtBQUViQyxVQUFNLEVBQUU7QUFGSyxHQUFELENBQWQ7QUFJRDtBQUNEO0FBQ0E7QUFDQTtBQUNBOztBQUNPLFNBQVNFLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQztBQUN4QyxTQUFPTCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSxtQ0FEUTtBQUViQyxVQUFNLEVBQUUsS0FGSztBQUdiSSxVQUFNLEVBQUVEO0FBSEssR0FBRCxDQUFkO0FBS0QsQyxDQUNEOztBQUNPLFNBQVNFLGlCQUFULENBQTJCRixJQUEzQixFQUFpQztBQUN0QyxTQUFPTCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSx3Q0FEUTtBQUViQyxVQUFNLEVBQUUsS0FGSztBQUdiSSxVQUFNLEVBQUVEO0FBSEssR0FBRCxDQUFkO0FBS0Q7QUFDTSxTQUFTRyxhQUFULEdBQXlCO0FBQzlCLFNBQU9SLHNFQUFPLENBQUM7QUFDYkMsT0FBRyxFQUFFLGlEQURRO0FBRWJDLFVBQU0sRUFBRTtBQUZLLEdBQUQsQ0FBZDtBQUlEO0FBQ0Q7QUFDQTs7QUFDTyxTQUFTTyxXQUFULEdBQXVCO0FBQzVCLFNBQU9DLDREQUFLLENBQUNDLElBQU4sQ0FBVyx1Q0FBWCxDQUFQO0FBQ0QiLCJmaWxlIjoiYmI5YS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZXF1ZXN0IGZyb20gJ0AvdXRpbHMvcmVxdWVzdCdcclxuLy91eOiOt+WPluWIl+ihqOWtl+auteaOpeWPo+S9v+eUqE1PQ0tcclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVkR2V0RmllbGQoKSB7XHJcbiAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgdXJsOiAnL3Z1ZS1lbGVtZW50LWFkbWluL3V4L3F1ZXJ5RmllbGQnLFxyXG4gICAgbWV0aG9kOiAnZ2V0J1xyXG4gIH0pXHJcbn1cclxuLyoqXHJcbiAqIOiusOW9leexu+WeiyDmlbDmja4g5LiO57O757uf6K6+572u57O757ufKHJlcGVhdClcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TZXR0aW5nUmVjb3JkTGlzdEFQSSgpIHtcclxuICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICB1cmw6ICcvdnVlLWVsZW1lbnQtYWRtaW4vdXgvcXVlcnlSZWNvcmRPcHRpb25zJyxcclxuICAgIG1ldGhvZDogJ2dldCdcclxuICB9KVxyXG59XHJcbi8qKlxyXG4gKiDor6bmg4XpobXln7rmnKzkv6Hmga9cclxuICogQHBhcmFtIHsqfSBkYXRhXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmlsZWRHZXRJbmZvcm1hdGlvbihkYXRhKSB7XHJcbiAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgdXJsOiAnL3Z1ZS1lbGVtZW50LWFkbWluL3V4L2luZm9ybWF0aW9uJyxcclxuICAgIG1ldGhvZDogJ2dldCcsXHJcbiAgICBwYXJhbXM6IGRhdGFcclxuICB9KVxyXG59XHJcbi8vIGNybSDoh6rlrprkuYnlrZfmrrUo6auY57qn562b6YCJKVxyXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVySW5kZXhmaWVsZHMoZGF0YSkge1xyXG4gIHJldHVybiByZXF1ZXN0KHtcclxuICAgIHVybDogJy92dWUtZWxlbWVudC1hZG1pbi91eC9zY2VuZS9xdWVyeUZpZWxkJyxcclxuICAgIG1ldGhvZDogJ2dldCcsXHJcbiAgICBwYXJhbXM6IGRhdGFcclxuICB9KVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TY2VuZUluZGV4KCkge1xyXG4gIHJldHVybiByZXF1ZXN0KHtcclxuICAgIHVybDogJy92dWUtZWxlbWVudC1hZG1pbi9zeXN0ZW0vc2NlbmUvZ2V0QWxsc2NlbmVMaXN0JyxcclxuICAgIG1ldGhvZDogJ2dldCdcclxuICB9KVxyXG59XHJcbmltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vKmF4aW9zKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU9yZ0luZGV4KCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2UvdXNlcmJyYW5jaC9jdXJyZW50L2JyYW5jaGVzJylcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///bb9a\n")},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},ceb4:function(module){eval('module.exports = JSON.parse("{\\"codeSetting\\":{\\"id\\":\\"1\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"项目\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"project\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"值\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"value\\",\\"setting\\":[]}]},\\"materialRelation\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"结算物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settleMaterialCode\\",\\"setting\\":[]}]},\\"centralizedControl\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"年度\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"year\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]}]},\\"material\\":{\\"id\\":\\"3\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"估价类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"estimateType\\",\\"setting\\":[]}]},\\"bomdatabase\\":{\\"id\\":\\"4\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"ERP总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"parentItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"ERP组件物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"childItemCode\\",\\"setting\\":[]}]},\\"customerStorageLocation\\":{\\"id\\":\\"5\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"存储地点\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"storagelocation\\",\\"setting\\":[]}]},\\"inventorydetail\\":{\\"id\\":\\"6\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"存储地点\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"storageLocation\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"估价类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"appraisalCategory\\",\\"setting\\":[]}]},\\"estimatedSum\\":{\\"id\\":\\"8\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"estimatedInventoryDetail\\":{\\"id\\":\\"9\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"fis\\":{\\"id\\":\\"10\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"底盘开票状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]},{\\"fieldId\\":3,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"底盘结算状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"settleState\\",\\"setting\\":[\\"底盘未结,0\\",\\"底盘部分结算,1\\",\\"底盘已结,2\\"]}]},\\"settleAccount\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"chassisNumber\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"unSettleAccount\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"chassisNumber\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"prebatch\\":{\\"id\\":\\"12\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"预批量,3\\",\\"其他,0\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"carCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"yearKennCode\\",\\"setting\\":[]}]},\\"secondaryAdjustment\\":{\\"id\\":\\"13\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"year\\",\\"name\\":\\"年度\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"period\\",\\"name\\":\\"期间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"customerMaterialCode\\",\\"name\\":\\"客户总成物料号\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"customerComponentCode\\",\\"name\\":\\"客户组件物料号\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"fieldName\\":\\"supplierCode\\",\\"name\\":\\"供应商代码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]}]},\\"sendUnsettledDiffReport\\":{\\"id\\":\\"14\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vinCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"status\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\",\\"预批量,3\\"]}]},\\"stockFisDiffReport\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"FIS物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"差异数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"stockUnsettledDiffReport\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"int\\",\\"name\\":\\"数量差异\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"stockSettledDiffReport\\":{\\"id\\":\\"16\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"R3客户物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"数量差异\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"estimatedStockDiffReport\\":{\\"id\\":\\"17\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"差异数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"secondaryActuralAdjustmentReport\\":{\\"id\\":\\"18\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemDesc\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]}]},\\"secondaryActuralDiffReport\\":{\\"id\\":\\"19\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"factory\\":{\\"id\\":\\"20\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"描述\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"desc\\",\\"setting\\":[]}]},\\"customerBom\\":{\\"id\\":\\"21\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"name\\":\\"客户\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerID\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"name\\":\\"主物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ParentItemID\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"item\\",\\"name\\":\\"子物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ChildItemID\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"用量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Qty\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerItem\\":{\\"id\\":\\"22\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"name\\":\\"物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemID\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"customer\\",\\"name\\":\\"客户\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerID\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品版本号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"int\\",\\"name\\":\\"客户物品标包数\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StdQty\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"name\\":\\"客户物品计量单位\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomID\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"secondaryPriceRatio\\":{\\"id\\":\\"23\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]}]},\\"materialRelationSupplier\\":{\\"id\\":\\"24\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"ERP供应商代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSupplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"客户供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerSupplierCode\\",\\"setting\\":[]}]},\\"btcarseq\\":{\\"id\\":\\"25\\",\\"data\\":[{\\"fieldId\\":37,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"车型代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"barCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]}]},\\"btcarkb\\":{\\"id\\":\\"26\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"订单看板编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"orderKBCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"btcarconsign\\":{\\"id\\":\\"27\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"已结,2\\"]}]},\\"jfcarkb\\":{\\"id\\":\\"28\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"单据编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"billNum\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"物料编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"jfcarconsign\\":{\\"id\\":\\"29\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"PA清单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"paBillNum\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"carMaterialConfig\\":{\\"id\\":\\"30\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"车型代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"carCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"发货看板物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"secondaryDiscount\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"standardKanban\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"外部看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"specialKanban\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"standardConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"其他,0\\",\\"已结,2\\"]}]},\\"specialConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"其他,0\\",\\"已结,2\\"]}]},\\"standardUnConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\"]}]},\\"specialUnConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\"]}]},\\"HqSecondaryActuralDiffReport\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"priceList\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]}]},\\"invoice\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]}]},\\"settlementPart\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"结算物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]}]},\\"itemInvoicePrice\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"销售订单\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"sales\\",\\"setting\\":[]}]},\\"SettlementCrossReference\\":{\\"id\\":\\"34\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"总成结算号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"BOM清单零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"bomMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"采购员\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"buyer\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"适用功能\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]}]},\\"EP\\":{\\"id\\":\\"35\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"索引\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"index\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"总成结算号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settleMentPartCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"BOM清单零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialPartCode\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"采购员\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"buyer\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"BOM用量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"usedNumber\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"text\\",\\"name\\":\\"供货比例[%]\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplyProportion\\",\\"setting\\":[]},{\\"fieldId\\":13,\\"formType\\":\\"text\\",\\"name\\":\\"价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":14,\\"formType\\":\\"text\\",\\"name\\":\\"结算价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPrice\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"单价差\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffPrice\\",\\"setting\\":[]},{\\"fieldId\\":16,\\"formType\\":\\"text\\",\\"name\\":\\"结算件下线数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":17,\\"formType\\":\\"text\\",\\"name\\":\\"理论结算数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"theoreticalSettlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":18,\\"formType\\":\\"text\\",\\"name\\":\\"实际结算数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"realSettlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":19,\\"formType\\":\\"text\\",\\"name\\":\\"实际结算金额\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"realSettlementPrice\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"text\\",\\"name\\":\\"是否量差\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"isDiffNumber\\",\\"setting\\":[]},{\\"fieldId\\":21,\\"formType\\":\\"text\\",\\"name\\":\\"差异金额\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffAmount\\",\\"setting\\":[]},{\\"fieldId\\":22,\\"formType\\":\\"text\\",\\"name\\":\\"差异原因\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"remark\\",\\"setting\\":[]}]},\\"settlementPartAndSpareParts\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"适用功能\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"applicableFunction\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"结算件编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"结算件描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartDesc\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"(Erp散件)零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSparePartCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"(Erp散件)零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSparePartName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"QAD代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"qADCode\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"供应商名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierName\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"产品类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"productLine\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"text\\",\\"name\\":\\"每车数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"perCarNum\\",\\"setting\\":[]},{\\"fieldId\\":13,\\"formType\\":\\"text\\",\\"name\\":\\"单价\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":14,\\"formType\\":\\"text\\",\\"name\\":\\"供货比例\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplyProportion\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"辆份价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"quantityPrice\\",\\"setting\\":[]}]},\\"vWKanBan\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板条码号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kanban\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"供应商编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"入库结算标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"flag\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"结算状态\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[]}]},\\"WMSKanBan\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板条码号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kanban\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"供应商编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"入库结算标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"flag\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"结算状态\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[]}]},\\"scrapClaims\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"类型(报废和索赔)\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"type\\",\\"setting\\":[\\"CP7报废,CP7报废\\",\\"索赔,索赔\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]}]},\\"sparePart\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"批次号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"batchNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"wmsSparePart\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"批次号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"batchNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"hqHPlatform\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"科目号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"accountNum\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"hqMPlatform\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"科目号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"accountNum\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"vwOutOrder\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料组\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialGroup\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未处理,0\\",\\"申请出库,1\\",\\"确认出库,2\\",\\"不能出库,3\\",\\"取消出库,4\\"]}]}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjZWI0LmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ceb4\n')},d1d9:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSupplierItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSupplierItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSupplierItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSupplierItemUpdate; });\n/* unused harmony export crmSupplierItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSupplierItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item/list\', data);\n} // 创建\n\nfunction crmSupplierItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item\', data);\n} // 根据id获取\n\nfunction crmSupplierItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/supplier-item/\' + id);\n} // 根据id修改\n\nfunction crmSupplierItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/supplier-item/\' + id, data);\n} // 删除\n\nfunction crmSupplierItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N1cHBsaWVySXRlbS9zdXBwbGllckl0ZW0uanM/ZDFkOSJdLCJuYW1lcyI6WyJjcm1TdXBwbGllckl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3VwcGxpZXJJdGVtU2F2ZSIsImNybVN1cHBsaWVySXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1TdXBwbGllckl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtU3VwcGxpZXJJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiZDFkOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXItaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3VwcGxpZXJJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyLWl0ZW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXItaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdXBwbGllckl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci1pdGVtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d1d9\n')},d298:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzFlN2IiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZDI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///d298\n")},d2fc:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSupplierIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSupplierSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSupplierRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSupplierUpdate; });\n/* unused harmony export crmSupplierDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSupplierIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier/list\', data);\n} // 创建\n\nfunction crmSupplierSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier\', data);\n} // 根据id获取\n\nfunction crmSupplierRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/supplier/\' + id);\n} // 根据id修改\n\nfunction crmSupplierUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/supplier/\' + id, data);\n} // 删除\n\nfunction crmSupplierDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N1cHBsaWVyL3N1cHBsaWVyLmpzP2QyZmMiXSwibmFtZXMiOlsiY3JtU3VwcGxpZXJJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3VwcGxpZXJTYXZlIiwiY3JtU3VwcGxpZXJSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3VwcGxpZXJVcGRhdGUiLCJwdXRzIiwiY3JtU3VwcGxpZXJEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZDJmYy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3VwcGxpZXJTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVyUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVyVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdXBwbGllckRlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d2fc\n')},d374:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmBomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmBomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmBomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmBomUpdate; });\n/* unused harmony export crmBomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Bom;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmBomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/bom/list\',data)\n} // 创建\n\nfunction crmBomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/bom\',data)\n} //根据id获取单条数据\n\nfunction crmBomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/bom/\'+id)\n} // 根据id修改\n\nfunction crmBomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/bom/\'+id,data)\n} // 删除\n\nfunction crmBomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/bom/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2JvbS9ib20uanM/ZDM3NCJdLCJuYW1lcyI6WyJhcGkiLCJhcGlDb25maWciLCJyb3V0ZXIiLCJhcGlSb3V0ZSIsIm1vZHVsZSIsIm1vZHVsZXMiLCJNYW51ZmFjdHVyZSIsImNybVR5cGUiLCJjcm1UeXBlcyIsIkJvbSIsImZ1bmNzIiwiY3JtQm9tSW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsIkxpc3RGdW5jIiwiY3JtQm9tU2F2ZSIsImNybUJvbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybUJvbVVwZGF0ZSIsInB1dHMiLCJjcm1Cb21EZWxldGUiLCJEZWxldGVGdW5jIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxHQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLFdBQVQsQ0FBcUJDLElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ0ssUUFBckMsRUFBOENILElBQTlDLENBQVAsQ0FEZ0MsQ0FFaEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksVUFBVCxDQUFvQkosSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBdkIsRUFBK0JLLElBQS9CLENBQVAsQ0FEK0IsQ0FFL0I7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ssVUFBVCxDQUFvQkMsRUFBcEIsRUFBd0I7QUFDN0IsU0FBT0wsNERBQUssQ0FBQ00sSUFBTixDQUFXbkIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLENBQVAsQ0FENkIsQ0FFN0I7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csWUFBVCxDQUFzQkgsRUFBdEIsRUFBeUJOLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxZQUFULENBQXNCWCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNjLFVBQXJDLEVBQWdEWixJQUFoRCxDQUFQLENBRGlDLENBRWpDO0FBQ0QiLCJmaWxlIjoiZDM3NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG5pbXBvcnQgYXBpQ29uZmlnIGZyb20gJ0AvYXBpL2FwaUNvbmZpZydcclxuXHJcbmNvbnN0IGFwaT0gYXBpQ29uZmlnLnJvdXRlci5hcGlSb3V0ZTtcclxuY29uc3QgbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5NYW51ZmFjdHVyZTtcclxuY29uc3QgY3JtVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuQm9tO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQm9tSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTGlzdEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9ib20vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUJvbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9ib20nLGRhdGEpXHJcbn1cclxuLy/moLnmja5pZOiOt+WPluWNleadoeaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQm9tUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZClcclxuICAvL3JldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2JvbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Cb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvYm9tLycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUJvbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYm9tL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d374\n')},d52f:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmPortIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmPortSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmPortRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmPortUpdate; });\n/* unused harmony export crmPortDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmPortIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port/list\', data);\n} // 创建\n\nfunction crmPortSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port\', data);\n} // 根据id获取\n\nfunction crmPortRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/port/\' + id);\n} // 根据id修改\n\nfunction crmPortUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/port/\' + id, data);\n} // 删除\n\nfunction crmPortDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3BvcnQvcG9ydC5qcz9kNTJmIl0sIm5hbWVzIjpbImNybVBvcnRJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUG9ydFNhdmUiLCJjcm1Qb3J0UmVhZCIsImlkIiwiZ2V0cyIsImNybVBvcnRVcGRhdGUiLCJwdXRzIiwiY3JtUG9ydERlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJkNTJmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydEluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcG9ydC9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydFNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wb3J0JyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qb3J0UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3BvcnQvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvcG9ydC8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qb3J0RGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcG9ydC9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d52f\n')},daad:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerItemUpdate; });\n/* unused harmony export crmCustomerItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCustomerItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item/list\', data);\n} // 创建\n\nfunction crmCustomerItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item\', data);\n} // 根据id获取\n\nfunction crmCustomerItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer-item/\' + id);\n} // 根据id修改\n\nfunction crmCustomerItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer-item/\' + id, data);\n} // 删除\n\nfunction crmCustomerItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVySXRlbS9jdXN0b21lckl0ZW0uanM/ZGFhZCJdLCJuYW1lcyI6WyJjcm1DdXN0b21lckl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VzdG9tZXJJdGVtU2F2ZSIsImNybUN1c3RvbWVySXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1DdXN0b21lckl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtQ3VzdG9tZXJJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiZGFhZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWl0ZW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1pdGVtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///daad\n')},de0b:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxMEMyOTg1QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxMEMyOTg2QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzEwQzI5ODNDMEEzMTFFOEJGNERGRTczODk0MENBOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzEwQzI5ODRDMEEzMTFFOEJGNERGRTczODk0MENBOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4G5F1NAAAA5UlEQVR42mJctWpVAwMDQyUQszGQBn4CcRMLkKgC4j9AfJZEA7SBuAZkwEUgNgTiTCA+TaRmJyDeA8SHmIBEERCD6NlAzEKEZj4gng/EH4E4EaTxMBAvB2J9IC4hwoB+IJYD4lQgvs8EFSwD4i9AXAfEKng0+wBxEhDPAOI1DFCng8BTIG4FYk6oJCMWzUJQb4LCrBAmyITmtNtA7AzE8VgMmA7EvEAcAcQ/sBnwE8nkDjTNnUAcBsRZQHwDWYIJTeFWKC2OJl4GpRehO4uJgUIwDAzAlnQ3UWqA/4B7gYEUbwEEGAANECY5RBCuPwAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZz9jZmQ4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTBiLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBU0NBWUFBQUJTTzE1cUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN4TUVNeU9UZzFRekJCTXpFeFJUaENSalJFUmtVM016ZzVOREJEUVRsQ0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3hNRU15T1RnMlF6QkJNekV4UlRoQ1JqUkVSa1UzTXpnNU5EQkRRVGxDSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56RXdRekk1T0RORE1FRXpNVEZGT0VKR05FUkdSVGN6T0RrME1FTkJPVUlpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpFd1F6STVPRFJETUVFek1URkZPRUpHTkVSR1JUY3pPRGswTUVOQk9VSWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRHNUYxTkFBQUE1VWxFUVZSNDJtSmN0V3BWQXdNRFF5VVFzekdRQm40Q2NSTUxrS2dDNGo5QWZKWkVBN1NCdUFaa3dFVWdOZ1RpVENBK1RhUm1KeURlQThTSG1JQkVFUkNENk5sQXpFS0VaajRnbmcvRUg0RTRFYVR4TUJBdkIySjlJQzRod29CK0lKWUQ0bFFndnM4RUZTd0Q0aTlBWEFmRUtuZzArd0J4RWhEUEFPSTFERkNuZzhCVElHNEZZazZvSkNNV3pVSlFiNExDckJBbXlJVG10TnRBN0F6RThWZ01tQTdFdkVBY0FjUS9zQm53RThua0RqVE5uVUFjQnNSWlFId0RXWUlKVGVGV0tDMk9KbDRHcFJlaE80dUpnVUl3REF6QWxuUTNVV3FBLzRCN2dZRVVid0VFR0FBTkVDWTVSQkN1UHdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de0b\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},dea6:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProdLineItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProdLineItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProdLineItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProdLineItemUpdate; });\n/* unused harmony export crmProdLineItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.ProdLineItem;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmProdLineItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/prodLineItem/list\',data)\n} // 创建\n\nfunction crmProdLineItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/prodLineItem\',data)\n} //根据id获取单条数据\n\nfunction crmProdLineItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/prodLineItem/\'+id)\n} // 根据id修改\n\nfunction crmProdLineItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/prodLineItem/\'+id,data)\n} // 删除\n\nfunction crmProdLineItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/prodLineItem/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2RMaW5lSXRlbS9wcm9kTGluZUl0ZW0uanM/ZGVhNiJdLCJuYW1lcyI6WyJhcGkiLCJhcGlDb25maWciLCJyb3V0ZXIiLCJhcGlSb3V0ZSIsIm1vZHVsZSIsIm1vZHVsZXMiLCJNYW51ZmFjdHVyZSIsImNybVR5cGUiLCJjcm1UeXBlcyIsIlByb2RMaW5lSXRlbSIsImZ1bmNzIiwiY3JtUHJvZExpbmVJdGVtSW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsIkxpc3RGdW5jIiwiY3JtUHJvZExpbmVJdGVtU2F2ZSIsImNybVByb2RMaW5lSXRlbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVByb2RMaW5lSXRlbVVwZGF0ZSIsInB1dHMiLCJjcm1Qcm9kTGluZUl0ZW1EZWxldGUiLCJEZWxldGVGdW5jIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxZQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLG9CQUFULENBQThCQyxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNLLFFBQXJDLEVBQThDSCxJQUE5QyxDQUFQLENBRHlDLENBRXpDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLG1CQUFULENBQTZCSixJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQUR3QyxDQUV4QztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxtQkFBVCxDQUE2QkMsRUFBN0IsRUFBaUM7QUFDdEMsU0FBT0wsNERBQUssQ0FBQ00sSUFBTixDQUFXbkIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLENBQVAsQ0FEc0MsQ0FFdEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0cscUJBQVQsQ0FBK0JILEVBQS9CLEVBQWtDTixJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDUyxJQUFOLENBQVd0QixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsRUFBZ0ROLElBQWhELENBQVAsQ0FENkMsQ0FFN0M7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1cscUJBQVQsQ0FBK0JYLElBQS9CLEVBQXFDO0FBQzFDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ2MsVUFBckMsRUFBZ0RaLElBQWhELENBQVAsQ0FEMEMsQ0FFMUM7QUFDRCIsImZpbGUiOiJkZWE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbmltcG9ydCBhcGlDb25maWcgZnJvbSAnQC9hcGkvYXBpQ29uZmlnJ1xyXG5cclxuY29uc3QgYXBpPSBhcGlDb25maWcucm91dGVyLmFwaVJvdXRlO1xyXG5jb25zdCBtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLk1hbnVmYWN0dXJlO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5Qcm9kTGluZUl0ZW07XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcbi8v6I635Y+W5YiX6KGo5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZUl0ZW1JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lSXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lSXRlbScsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZUl0ZW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcHJvZExpbmVJdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2RMaW5lSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZUl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkRlbGV0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZUl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///dea6\n')},e024:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWlgIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWlgSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWlgRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWlgUpdate; });\n/* unused harmony export crmWlgDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWlgIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg/list\', data);\n} // 创建\n\nfunction crmWlgSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg\', data);\n} // 根据id获取\n\nfunction crmWlgRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/wlg/\' + id);\n} // 根据id修改\n\nfunction crmWlgUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/wlg/\' + id, data);\n} // 删除\n\nfunction crmWlgDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dsZy93bGcuanM/ZTAyNCJdLCJuYW1lcyI6WyJjcm1XbGdJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV2xnU2F2ZSIsImNybVdsZ1JlYWQiLCJpZCIsImdldHMiLCJjcm1XbGdVcGRhdGUiLCJwdXRzIiwiY3JtV2xnRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6ImUwMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dsZy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dsZycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3dsZy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3dsZy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGcvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e024\n')},e131:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWorkCenterIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWorkCenterSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWorkCenterRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWorkCenterUpdate; });\n/* unused harmony export crmWorkCenterDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.WorkCenter;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmWorkCenterIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/workCenter/list\',data)\n} // 创建\n\nfunction crmWorkCenterSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/workCenter\',data)\n} //根据id获取单条数据\n\nfunction crmWorkCenterRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/workCenter/\'+id)\n} // 根据id修改\n\nfunction crmWorkCenterUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/workCenter/\'+id,data)\n} // 删除\n\nfunction crmWorkCenterDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/workCenter/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dvcmtDZW50ZXIvd29ya0NlbnRlci5qcz9lMTMxIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiV29ya0NlbnRlciIsImZ1bmNzIiwiY3JtV29ya0NlbnRlckluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVdvcmtDZW50ZXJTYXZlIiwiY3JtV29ya0NlbnRlclJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVdvcmtDZW50ZXJVcGRhdGUiLCJwdXRzIiwiY3JtV29ya0NlbnRlckRlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLFVBQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QixDLENBRUE7O0FBQ08sU0FBU0Msa0JBQVQsQ0FBNEJDLElBQTVCLEVBQWtDO0FBQ3ZDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ0ssUUFBckMsRUFBOENILElBQTlDLENBQVAsQ0FEdUMsQ0FFdkM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksaUJBQVQsQ0FBMkJKLElBQTNCLEVBQWlDO0FBQ3RDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQXZCLEVBQStCSyxJQUEvQixDQUFQLENBRHNDLENBRXRDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNLLGlCQUFULENBQTJCQyxFQUEzQixFQUErQjtBQUNwQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxtQkFBVCxDQUE2QkgsRUFBN0IsRUFBZ0NOLElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUQyQyxDQUUzQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxtQkFBVCxDQUE2QlgsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQUR3QyxDQUV4QztBQUNEIiwiZmlsZSI6ImUxMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLldvcmtDZW50ZXI7XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcbi8v6I635Y+W5YiX6KGo5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTGlzdEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVyU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dvcmtDZW50ZXInLGRhdGEpXHJcbn1cclxuLy/moLnmja5pZOiOt+WPluWNleadoeaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV29ya0NlbnRlclJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDZW50ZXJVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvd29ya0NlbnRlci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVyRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkRlbGV0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///e131\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e5b7:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmEqptTypeIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmEqptTypeSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmEqptTypeRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmEqptTypeUpdate; });\n/* unused harmony export crmEqptTypeDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmEqptTypeIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type/list\', data);\n} // 创建\n\nfunction crmEqptTypeSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type\', data);\n} // 根据id获取\n\nfunction crmEqptTypeRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/eqpt-type/\' + id);\n} // 根据id修改\n\nfunction crmEqptTypeUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/eqpt-type/\' + id, data);\n} // 删除\n\nfunction crmEqptTypeDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2VxcHRUeXBlL2VxcHRUeXBlLmpzP2U1YjciXSwibmFtZXMiOlsiY3JtRXFwdFR5cGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtRXFwdFR5cGVTYXZlIiwiY3JtRXFwdFR5cGVSZWFkIiwiaWQiLCJnZXRzIiwiY3JtRXFwdFR5cGVVcGRhdGUiLCJwdXRzIiwiY3JtRXFwdFR5cGVEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZTViNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2VxcHQtdHlwZScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e5b7\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},e8a1:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE0REI4QTc0RTBDQzExRThBMjVFQURFN0NBODRENkE5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE0REI4QTc1RTBDQzExRThBMjVFQURFN0NBODRENkE5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTREQjhBNzJFMENDMTFFOEEyNUVBREU3Q0E4NEQ2QTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTREQjhBNzNFMENDMTFFOEEyNUVBREU3Q0E4NEQ2QTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7f1mVuAAABMElEQVR42syUv0tCURSA1Vzcm5qa+h9aBCGisbacmirQKGgUHAQJl35MJUHamotOkhTOTv0RBoLkEE1t9l04Dy6Xc7s3dOjCN7xzH98795xzXzpfn6aWuTKpJa+/CNPQgC8YwOoiQiO7gzOowTq8atJY4Q4cwB5cQgFymjRW+AIb8CzPE580EzhmBfpQhHdn35Y+hYRGdgtV+IRHKCnvGek9bCaB7C8NMDXblY6+wQ10YObUti57aoaaLInPlUZ1JfuKlqFPdirzV7ays2Ul+2N2hg1FdgjXMn/NkMzN8ERSH1ixFTiChxiZKxzBsYzARGJNT81UmXvkffiGIawpDeiFZK7wA7YUaSJrh2Ta2Mwc6bnIWjEy301JpGO4gCsZmXnMpc964ka6/S/+2D8CDADiQVJvALiknAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9yZWxldmFuY2VfZmlsZS5wbmc/NjBiOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiZThhMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQVVDQVlBQUFDTmlSME5BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tFMFJFSTRRVGMwUlRCRFF6RXhSVGhCTWpWRlFVUkZOME5CT0RSRU5rRTVJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa0UwUkVJNFFUYzFSVEJEUXpFeFJUaEJNalZGUVVSRk4wTkJPRFJFTmtFNUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRVFJFUWpoQk56SkZNRU5ETVRGRk9FRXlOVVZCUkVVM1EwRTRORVEyUVRraUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFUUkVRamhCTnpORk1FTkRNVEZGT0VFeU5VVkJSRVUzUTBFNE5FUTJRVGtpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3ZjFtVnVBQUFCTUVsRVFWUjQyc3lVdjB0Q1VSU0ExVnpjbTVxYStoOWFCQ0dpc2JhY21pclFLR2dVSEFRSmwzNU1KVUhhbW90T2toVE9UdjBSQm9Ma0VFMXQ5bDA0RHk2WGM3czNkT2pDTjd4ekg5ODc5NXh6WHpwZm42YVd1VEtwSmErL0NOUFFnQzhZd09vaVFpTzdnek9vd1RxOGF0Slk0UTRjd0I1Y1FnRnltalJXK0FJYjhDelBFNTgwRXpobUJmcFFoSGRuMzVZK2hZUkdkZ3RWK0lSSEtDbnZHZWs5YkNhQjdDOE5NRFhibFk2K3dRMTBZT2JVdGk1N2FvYWFMSW5QbFVaMUpmdUtscUZQZGlyelY3YXlzMlVsKzJOMmhnMUZkZ2pYTW4vTmtNek44RVJTSDFpeEZUaUNoeGlaS3h6QnNZekFSR0pOVDgxVW1YdmtmZmlHSWF3cERlaUZaSzd3QTdZVWFTSnJoMlRhMk13YzZibklXakV5MzAxSnBHTzRnQ3NabVhuTXBjOTY0a2E2L1MvKzJEOENEQURpUVZKdkFMaWtuQUFBQUFCSlJVNUVya0pnZ2c9PVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e8a1\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},f68e:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmTeamIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmTeamSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmTeamRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmTeamUpdate; });\n/* unused harmony export crmTeamDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Team;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmTeamIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/team/list\',data)\n} // 创建\n\nfunction crmTeamSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/team\',data)\n} //根据id获取单条数据\n\nfunction crmTeamRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/team/\'+id)\n} // 根据id修改\n\nfunction crmTeamUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/team/\'+id,data)\n} // 删除\n\nfunction crmTeamDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/team/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3RlYW0vdGVhbS5qcz9mNjhlIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiVGVhbSIsImZ1bmNzIiwiY3JtVGVhbUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVRlYW1TYXZlIiwiY3JtVGVhbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVRlYW1VcGRhdGUiLCJwdXRzIiwiY3JtVGVhbURlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLElBQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QixDLENBRUE7O0FBQ08sU0FBU0MsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURpQyxDQUVqQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCSixJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURnQyxDQUVoQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQUQ4QixDQUU5QjtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxhQUFULENBQXVCSCxFQUF2QixFQUEwQk4sSUFBMUIsRUFBZ0M7QUFDckMsU0FBT0MsNERBQUssQ0FBQ1MsSUFBTixDQUFXdEIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLEVBQWdETixJQUFoRCxDQUFQLENBRHFDLENBRXJDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNXLGFBQVQsQ0FBdUJYLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ2MsVUFBckMsRUFBZ0RaLElBQWhELENBQVAsQ0FEa0MsQ0FFbEM7QUFDRCIsImZpbGUiOiJmNjhlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbmltcG9ydCBhcGlDb25maWcgZnJvbSAnQC9hcGkvYXBpQ29uZmlnJ1xyXG5cclxuY29uc3QgYXBpPSBhcGlDb25maWcucm91dGVyLmFwaVJvdXRlO1xyXG5jb25zdCBtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLk1hbnVmYWN0dXJlO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5UZWFtO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkxpc3RGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdGVhbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS90ZWFtJyxkYXRhKVxyXG59XHJcbi8v5qC55o2uaWTojrflj5bljZXmnaHmlbDmja5cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVRlYW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdGVhbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1UZWFtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3RlYW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdGVhbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///f68e\n')},f7dc:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmRuleIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmRuleSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmRuleRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmRuleUpdate; });\n/* unused harmony export crmRuleDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n\nfunction crmRuleIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule/list\', data);\n}\nfunction crmRuleSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule\', data);\n}\nfunction crmRuleRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/rule/\' + id);\n}\nfunction crmRuleUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/rule/\' + id, data);\n}\nfunction crmRuleDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3J1bGUvcnVsZS5qcz9mN2RjIl0sIm5hbWVzIjpbImNybVJ1bGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUnVsZVNhdmUiLCJjcm1SdWxlUmVhZCIsImlkIiwiZ2V0cyIsImNybVJ1bGVVcGRhdGUiLCJwdXRzIiwiY3JtUnVsZURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTs7QUFDTyxTQUFTQSxZQUFULENBQXNCQyxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkseUJBQVosRUFBc0NGLElBQXRDLENBQVA7QUFDRDtBQUNNLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNEO0FBQ00sU0FBU0ksV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7QUFDOUIsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHdCQUFzQkQsRUFBakMsQ0FBUDtBQUNEO0FBQ00sU0FBU0UsYUFBVCxDQUF1QkYsRUFBdkIsRUFBMEJMLElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx3QkFBc0JILEVBQWpDLEVBQW9DTCxJQUFwQyxDQUFQO0FBQ0Q7QUFDTSxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJmN2RjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8qYXhpb3MqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JtUnVsZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcnVsZS9saXN0JyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1SdWxlU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3J1bGUnLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJ1bGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcnVsZS8nK2lkKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1SdWxlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9ydWxlLycraWQsZGF0YSlcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUnVsZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3J1bGUvZGVsZXRlJyxkYXRhKVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///f7dc\n')},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')},fdcb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWlgItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWlgItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWlgItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWlgItemUpdate; });\n/* unused harmony export crmWlgItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWlgItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item/list\', data);\n} // 创建\n\nfunction crmWlgItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item\', data);\n} // 根据id获取\n\nfunction crmWlgItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/wlg-item/\' + id);\n} // 根据id修改\n\nfunction crmWlgItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/wlg-item/\' + id, data);\n} // 删除\n\nfunction crmWlgItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dsZ0l0ZW0vd2xnSXRlbS5qcz9mZGNiIl0sIm5hbWVzIjpbImNybVdsZ0l0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV2xnSXRlbVNhdmUiLCJjcm1XbGdJdGVtUmVhZCIsImlkIiwiZ2V0cyIsImNybVdsZ0l0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtV2xnSXRlbURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsZUFBVCxDQUF5QkMsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDZCQUFaLEVBQTBDRixJQUExQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILElBQXhCLEVBQThCO0FBQ25DLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx3QkFBWixFQUFxQ0YsSUFBckMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxjQUFULENBQXdCQyxFQUF4QixFQUE0QjtBQUNqQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsNEJBQTBCRCxFQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGdCQUFULENBQTBCRixFQUExQixFQUE2QkwsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLDRCQUEwQkgsRUFBckMsRUFBd0NMLElBQXhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsZ0JBQVQsQ0FBMEJULElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwrQkFBWixFQUE0Q0YsSUFBNUMsQ0FBUDtBQUNEIiwiZmlsZSI6ImZkY2IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnSXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvd2xnLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///fdcb\n')},ff93:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmStageIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmStageSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmStageRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmStageUpdate; });\n/* unused harmony export crmStageDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmStageIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage/list\', data);\n} // 创建\n\nfunction crmStageSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage\', data);\n} // 根据id获取\n\nfunction crmStageRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/stage/\' + id);\n} // 根据id修改\n\nfunction crmStageUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/stage/\' + id, data);\n} // 删除\n\nfunction crmStageDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N0YWdlL3N0YWdlLmpzP2ZmOTMiXSwibmFtZXMiOlsiY3JtU3RhZ2VJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3RhZ2VTYXZlIiwiY3JtU3RhZ2VSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3RhZ2VVcGRhdGUiLCJwdXRzIiwiY3JtU3RhZ2VEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxZQUFULENBQXNCSCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkscUJBQVosRUFBa0NGLElBQWxDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksWUFBVCxDQUFzQkMsRUFBdEIsRUFBMEI7QUFDL0IsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHlCQUF1QkQsRUFBbEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxjQUFULENBQXdCRixFQUF4QixFQUEyQkwsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHlCQUF1QkgsRUFBbEMsRUFBcUNMLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsY0FBVCxDQUF3QlQsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZmY5My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdGFnZS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3RhZ2VTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3RhZ2UnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N0YWdlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdGFnZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdGFnZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N0YWdlL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ff93\n')}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-b83932fc","chunk-607f726c"],{"0382":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmMachineIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmMachineSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmMachineRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmMachineUpdate; });\n/* unused harmony export crmMachineDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Machine;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs;\n/*axios*/\n\nfunction crmMachineIndex(data) {\n //获取列表数据\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/machine/list\',data)\n}\nfunction crmMachineSave(data) {\n //新增\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/machine\',data)\n}\nfunction crmMachineRead(id) {\n //根据id获取单条数据\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/machine/\'+id)\n}\nfunction crmMachineUpdate(id, data) {\n //更新\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/machine/\'+id,data)\n}\nfunction crmMachineDelete(data) {\n //删除\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/machine/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL21hY2hpbmUvbWFjaGluZS5qcz8wMzgyIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiTWFjaGluZSIsImZ1bmNzIiwiY3JtTWFjaGluZUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybU1hY2hpbmVTYXZlIiwiY3JtTWFjaGluZVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybU1hY2hpbmVVcGRhdGUiLCJwdXRzIiwiY3JtTWFjaGluZURlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLE9BQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QjtBQUdBOztBQUNPLFNBQVNDLGVBQVQsQ0FBeUJDLElBQXpCLEVBQStCO0FBQUM7QUFDckMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURvQyxDQUVwQztBQUNEO0FBQ00sU0FBU0ksY0FBVCxDQUF3QkosSUFBeEIsRUFBOEI7QUFBQztBQUNwQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURtQyxDQUVuQztBQUNEO0FBQ00sU0FBU0ssY0FBVCxDQUF3QkMsRUFBeEIsRUFBNEI7QUFBQztBQUNsQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURpQyxDQUVqQztBQUNEO0FBQ00sU0FBU0csZ0JBQVQsQ0FBMEJILEVBQTFCLEVBQTZCTixJQUE3QixFQUFtQztBQUFDO0FBQ3pDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUR3QyxDQUV4QztBQUNEO0FBQ00sU0FBU1csZ0JBQVQsQ0FBMEJYLElBQTFCLEVBQWdDO0FBQUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURxQyxDQUVyQztBQUNEIiwiZmlsZSI6IjAzODIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLk1hY2hpbmU7XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcblxyXG4vKmF4aW9zKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU1hY2hpbmVJbmRleChkYXRhKSB7Ly/ojrflj5bliJfooajmlbDmja5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkxpc3RGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS9saXN0JyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1NYWNoaW5lU2F2ZShkYXRhKSB7Ly/mlrDlop5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZScsZGF0YSlcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTWFjaGluZVJlYWQoaWQpIHsvL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS8nK2lkKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1NYWNoaW5lVXBkYXRlKGlkLGRhdGEpIHsvL+abtOaWsFxyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS8nK2lkLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU1hY2hpbmVEZWxldGUoZGF0YSkgey8v5Yig6ZmkXHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvbWFjaGluZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0382\n')},"0563":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemTransTypeInventoryRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemTransTypeInventoryRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemTransTypeInventoryRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemTransTypeInventoryRouteUpdate; });\n/* unused harmony export crmItemTransTypeInventoryRouteDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemTransTypeInventoryRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route/list\', data);\n} // 创建\n\nfunction crmItemTransTypeInventoryRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route\', data);\n} // 根据id获取\n\nfunction crmItemTransTypeInventoryRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item-transtype-inventory-route/\' + id);\n} // 根据id修改\n\nfunction crmItemTransTypeInventoryRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item-transtype-inventory-route/\' + id, data);\n} // 删除\n\nfunction crmItemTransTypeInventoryRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-transtype-inventory-route/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZS9pdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGUuanM/MDU2MyJdLCJuYW1lcyI6WyJjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVRyYW5zVHlwZUludmVudG9yeVJvdXRlU2F2ZSIsImNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZVJlYWQiLCJpZCIsImdldHMiLCJjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVVcGRhdGUiLCJwdXRzIiwiY3JtSXRlbVRyYW5zVHlwZUludmVudG9yeVJvdXRlRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxtQ0FBVCxDQUE2Q0MsSUFBN0MsRUFBbUQ7QUFDeEQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1EQUFaLEVBQWdFRixJQUFoRSxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGtDQUFULENBQTRDSCxJQUE1QyxFQUFrRDtBQUN2RCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOENBQVosRUFBMkRGLElBQTNELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksa0NBQVQsQ0FBNENDLEVBQTVDLEVBQWdEO0FBQ3JELFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxrREFBZ0RELEVBQTNELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0Usb0NBQVQsQ0FBOENGLEVBQTlDLEVBQWlETCxJQUFqRCxFQUF1RDtBQUM1RCxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsa0RBQWdESCxFQUEzRCxFQUE4REwsSUFBOUQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxvQ0FBVCxDQUE4Q1QsSUFBOUMsRUFBb0Q7QUFDekQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHFEQUFaLEVBQWtFRixJQUFsRSxDQUFQO0FBQ0QiLCJmaWxlIjoiMDU2My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlSW52ZW50b3J5Um91dGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFuc3R5cGUtaW52ZW50b3J5LXJvdXRlLycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUl0ZW1UcmFuc1R5cGVJbnZlbnRvcnlSb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnN0eXBlLWludmVudG9yeS1yb3V0ZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///0563\n')},"09f4":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return scrollTo; });\nMath.easeInOutQuad = function (t, b, c, d) {\n t /= d / 2;\n\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n}; // requestAnimationFrame for Smart Animating http://goo.gl/sx5sts\n\n\nvar requestAnimFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n}();\n/**\r\n * Because it's so fucking difficult to detect the scrolling element, just move them all\r\n * @param {number} amount\r\n */\n\n\nfunction move(amount) {\n document.documentElement.scrollTop = amount;\n document.body.parentNode.scrollTop = amount;\n document.body.scrollTop = amount;\n}\n\nfunction position() {\n return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop;\n}\n/**\r\n * @param {number} to\r\n * @param {number} duration\r\n * @param {Function} callback\r\n */\n\n\nfunction scrollTo(to, duration, callback) {\n var start = position();\n var change = to - start;\n var increment = 20;\n var currentTime = 0;\n duration = typeof duration === 'undefined' ? 500 : duration;\n\n var animateScroll = function animateScroll() {\n // increment the time\n currentTime += increment; // find the value with the quadratic in-out easing function\n\n var val = Math.easeInOutQuad(currentTime, start, change, duration); // move the document.body\n\n move(val); // do the animation unless its over\n\n if (currentTime < duration) {\n requestAnimFrame(animateScroll);\n } else {\n if (callback && typeof callback === 'function') {\n // the animation is done so lets callback\n callback();\n }\n }\n };\n\n animateScroll();\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvc2Nyb2xsLXRvLmpzPzA5ZjQiXSwibmFtZXMiOlsiTWF0aCIsImVhc2VJbk91dFF1YWQiLCJ0IiwiYiIsImMiLCJkIiwicmVxdWVzdEFuaW1GcmFtZSIsIndpbmRvdyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm1velJlcXVlc3RBbmltYXRpb25GcmFtZSIsImNhbGxiYWNrIiwic2V0VGltZW91dCIsIm1vdmUiLCJhbW91bnQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInNjcm9sbFRvcCIsImJvZHkiLCJwYXJlbnROb2RlIiwicG9zaXRpb24iLCJzY3JvbGxUbyIsInRvIiwiZHVyYXRpb24iLCJzdGFydCIsImNoYW5nZSIsImluY3JlbWVudCIsImN1cnJlbnRUaW1lIiwiYW5pbWF0ZVNjcm9sbCIsInZhbCJdLCJtYXBwaW5ncyI6IkFBQUFBO0FBQUFBLElBQUksQ0FBQ0MsYUFBTCxHQUFxQixVQUFTQyxDQUFULEVBQVlDLENBQVosRUFBZUMsQ0FBZixFQUFrQkMsQ0FBbEIsRUFBcUI7QUFDeENILEdBQUMsSUFBSUcsQ0FBQyxHQUFHLENBQVQ7O0FBQ0EsTUFBSUgsQ0FBQyxHQUFHLENBQVIsRUFBVztBQUNULFdBQU9FLENBQUMsR0FBRyxDQUFKLEdBQVFGLENBQVIsR0FBWUEsQ0FBWixHQUFnQkMsQ0FBdkI7QUFDRDs7QUFDREQsR0FBQztBQUNELFNBQU8sQ0FBQ0UsQ0FBRCxHQUFLLENBQUwsSUFBVUYsQ0FBQyxJQUFJQSxDQUFDLEdBQUcsQ0FBUixDQUFELEdBQWMsQ0FBeEIsSUFBNkJDLENBQXBDO0FBQ0QsQ0FQRCxDLENBU0E7OztBQUNBLElBQUlHLGdCQUFnQixHQUFJLFlBQVc7QUFDakMsU0FBT0MsTUFBTSxDQUFDQyxxQkFBUCxJQUFnQ0QsTUFBTSxDQUFDRSwyQkFBdkMsSUFBc0VGLE1BQU0sQ0FBQ0csd0JBQTdFLElBQXlHLFVBQVNDLFFBQVQsRUFBbUI7QUFBRUosVUFBTSxDQUFDSyxVQUFQLENBQWtCRCxRQUFsQixFQUE0QixPQUFPLEVBQW5DO0FBQXdDLEdBQTdLO0FBQ0QsQ0FGc0IsRUFBdkI7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsU0FBU0UsSUFBVCxDQUFjQyxNQUFkLEVBQXNCO0FBQ3BCQyxVQUFRLENBQUNDLGVBQVQsQ0FBeUJDLFNBQXpCLEdBQXFDSCxNQUFyQztBQUNBQyxVQUFRLENBQUNHLElBQVQsQ0FBY0MsVUFBZCxDQUF5QkYsU0FBekIsR0FBcUNILE1BQXJDO0FBQ0FDLFVBQVEsQ0FBQ0csSUFBVCxDQUFjRCxTQUFkLEdBQTBCSCxNQUExQjtBQUNEOztBQUVELFNBQVNNLFFBQVQsR0FBb0I7QUFDbEIsU0FBT0wsUUFBUSxDQUFDQyxlQUFULENBQXlCQyxTQUF6QixJQUFzQ0YsUUFBUSxDQUFDRyxJQUFULENBQWNDLFVBQWQsQ0FBeUJGLFNBQS9ELElBQTRFRixRQUFRLENBQUNHLElBQVQsQ0FBY0QsU0FBakc7QUFDRDtBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFNBQVNJLFFBQVQsQ0FBa0JDLEVBQWxCLEVBQXNCQyxRQUF0QixFQUFnQ1osUUFBaEMsRUFBMEM7QUFDL0MsTUFBTWEsS0FBSyxHQUFHSixRQUFRLEVBQXRCO0FBQ0EsTUFBTUssTUFBTSxHQUFHSCxFQUFFLEdBQUdFLEtBQXBCO0FBQ0EsTUFBTUUsU0FBUyxHQUFHLEVBQWxCO0FBQ0EsTUFBSUMsV0FBVyxHQUFHLENBQWxCO0FBQ0FKLFVBQVEsR0FBSSxPQUFRQSxRQUFSLEtBQXNCLFdBQXZCLEdBQXNDLEdBQXRDLEdBQTRDQSxRQUF2RDs7QUFDQSxNQUFJSyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLEdBQVc7QUFDN0I7QUFDQUQsZUFBVyxJQUFJRCxTQUFmLENBRjZCLENBRzdCOztBQUNBLFFBQUlHLEdBQUcsR0FBRzdCLElBQUksQ0FBQ0MsYUFBTCxDQUFtQjBCLFdBQW5CLEVBQWdDSCxLQUFoQyxFQUF1Q0MsTUFBdkMsRUFBK0NGLFFBQS9DLENBQVYsQ0FKNkIsQ0FLN0I7O0FBQ0FWLFFBQUksQ0FBQ2dCLEdBQUQsQ0FBSixDQU42QixDQU83Qjs7QUFDQSxRQUFJRixXQUFXLEdBQUdKLFFBQWxCLEVBQTRCO0FBQzFCakIsc0JBQWdCLENBQUNzQixhQUFELENBQWhCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsVUFBSWpCLFFBQVEsSUFBSSxPQUFRQSxRQUFSLEtBQXNCLFVBQXRDLEVBQWtEO0FBQ2hEO0FBQ0FBLGdCQUFRO0FBQ1Q7QUFDRjtBQUNGLEdBaEJEOztBQWlCQWlCLGVBQWE7QUFDZCIsImZpbGUiOiIwOWY0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiTWF0aC5lYXNlSW5PdXRRdWFkID0gZnVuY3Rpb24odCwgYiwgYywgZCkge1xyXG4gIHQgLz0gZCAvIDJcclxuICBpZiAodCA8IDEpIHtcclxuICAgIHJldHVybiBjIC8gMiAqIHQgKiB0ICsgYlxyXG4gIH1cclxuICB0LS1cclxuICByZXR1cm4gLWMgLyAyICogKHQgKiAodCAtIDIpIC0gMSkgKyBiXHJcbn1cclxuXHJcbi8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSBmb3IgU21hcnQgQW5pbWF0aW5nIGh0dHA6Ly9nb28uZ2wvc3g1c3RzXHJcbnZhciByZXF1ZXN0QW5pbUZyYW1lID0gKGZ1bmN0aW9uKCkge1xyXG4gIHJldHVybiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8IHdpbmRvdy53ZWJraXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwgd2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fCBmdW5jdGlvbihjYWxsYmFjaykgeyB3aW5kb3cuc2V0VGltZW91dChjYWxsYmFjaywgMTAwMCAvIDYwKSB9XHJcbn0pKClcclxuXHJcbi8qKlxyXG4gKiBCZWNhdXNlIGl0J3Mgc28gZnVja2luZyBkaWZmaWN1bHQgdG8gZGV0ZWN0IHRoZSBzY3JvbGxpbmcgZWxlbWVudCwganVzdCBtb3ZlIHRoZW0gYWxsXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBhbW91bnRcclxuICovXHJcbmZ1bmN0aW9uIG1vdmUoYW1vdW50KSB7XHJcbiAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA9IGFtb3VudFxyXG4gIGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxUb3AgPSBhbW91bnRcclxuICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA9IGFtb3VudFxyXG59XHJcblxyXG5mdW5jdGlvbiBwb3NpdGlvbigpIHtcclxuICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAcGFyYW0ge251bWJlcn0gdG9cclxuICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uXHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsVG8odG8sIGR1cmF0aW9uLCBjYWxsYmFjaykge1xyXG4gIGNvbnN0IHN0YXJ0ID0gcG9zaXRpb24oKVxyXG4gIGNvbnN0IGNoYW5nZSA9IHRvIC0gc3RhcnRcclxuICBjb25zdCBpbmNyZW1lbnQgPSAyMFxyXG4gIGxldCBjdXJyZW50VGltZSA9IDBcclxuICBkdXJhdGlvbiA9ICh0eXBlb2YgKGR1cmF0aW9uKSA9PT0gJ3VuZGVmaW5lZCcpID8gNTAwIDogZHVyYXRpb25cclxuICB2YXIgYW5pbWF0ZVNjcm9sbCA9IGZ1bmN0aW9uKCkge1xyXG4gICAgLy8gaW5jcmVtZW50IHRoZSB0aW1lXHJcbiAgICBjdXJyZW50VGltZSArPSBpbmNyZW1lbnRcclxuICAgIC8vIGZpbmQgdGhlIHZhbHVlIHdpdGggdGhlIHF1YWRyYXRpYyBpbi1vdXQgZWFzaW5nIGZ1bmN0aW9uXHJcbiAgICB2YXIgdmFsID0gTWF0aC5lYXNlSW5PdXRRdWFkKGN1cnJlbnRUaW1lLCBzdGFydCwgY2hhbmdlLCBkdXJhdGlvbilcclxuICAgIC8vIG1vdmUgdGhlIGRvY3VtZW50LmJvZHlcclxuICAgIG1vdmUodmFsKVxyXG4gICAgLy8gZG8gdGhlIGFuaW1hdGlvbiB1bmxlc3MgaXRzIG92ZXJcclxuICAgIGlmIChjdXJyZW50VGltZSA8IGR1cmF0aW9uKSB7XHJcbiAgICAgIHJlcXVlc3RBbmltRnJhbWUoYW5pbWF0ZVNjcm9sbClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjYWxsYmFjayAmJiB0eXBlb2YgKGNhbGxiYWNrKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIC8vIHRoZSBhbmltYXRpb24gaXMgZG9uZSBzbyBsZXRzIGNhbGxiYWNrXHJcbiAgICAgICAgY2FsbGJhY2soKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGFuaW1hdGVTY3JvbGwoKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///09f4\n")},1375:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerBomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerBomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerBomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerBomUpdate; });\n/* unused harmony export crmCustomerBomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCustomerBomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom/list\', data);\n} // 创建\n\nfunction crmCustomerBomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom\', data);\n} // 根据id获取\n\nfunction crmCustomerBomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer-bom/\' + id);\n} // 根据id修改\n\nfunction crmCustomerBomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer-bom/\' + id, data);\n} // 删除\n\nfunction crmCustomerBomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-bom/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVyQm9tL2N1c3RvbWVyQm9tLmpzPzEzNzUiXSwibmFtZXMiOlsiY3JtQ3VzdG9tZXJCb21JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VzdG9tZXJCb21TYXZlIiwiY3JtQ3VzdG9tZXJCb21SZWFkIiwiaWQiLCJnZXRzIiwiY3JtQ3VzdG9tZXJCb21VcGRhdGUiLCJwdXRzIiwiY3JtQ3VzdG9tZXJCb21EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksaUNBQVosRUFBOENGLElBQTlDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csa0JBQVQsQ0FBNEJILElBQTVCLEVBQWtDO0FBQ3ZDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSw0QkFBWixFQUF5Q0YsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxrQkFBVCxDQUE0QkMsRUFBNUIsRUFBZ0M7QUFDckMsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLGdDQUE4QkQsRUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxvQkFBVCxDQUE4QkYsRUFBOUIsRUFBaUNMLElBQWpDLEVBQXVDO0FBQzVDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyxnQ0FBOEJILEVBQXpDLEVBQTRDTCxJQUE1QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLG9CQUFULENBQThCVCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksbUNBQVosRUFBZ0RGLElBQWhELENBQVA7QUFDRCIsImZpbGUiOiIxMzc1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21TYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItYm9tJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckJvbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1ib20vJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJCb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckJvbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWJvbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///1375\n')},"1a29":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmShiftIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmShiftSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmShiftRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmShiftUpdate; });\n/* unused harmony export crmShiftDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Shift;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmShiftIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/shift/list\',data)\n} // 创建\n\nfunction crmShiftSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/shift\',data)\n} //根据id获取单条数据\n\nfunction crmShiftRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/shift/\'+id)\n} // 根据id修改\n\nfunction crmShiftUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/shift/\'+id,data)\n} // 删除\n\nfunction crmShiftDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/shift/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3NoaWZ0L3NoaWZ0LmpzPzFhMjkiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJTaGlmdCIsImZ1bmNzIiwiY3JtU2hpZnRJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiTGlzdEZ1bmMiLCJjcm1TaGlmdFNhdmUiLCJjcm1TaGlmdFJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVNoaWZ0VXBkYXRlIiwicHV0cyIsImNybVNoaWZ0RGVsZXRlIiwiRGVsZXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsTUFBTSxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxXQUFoQztBQUNBLElBQU1DLE9BQU8sR0FBQ04sMkNBQVMsQ0FBQ08sUUFBVixDQUFtQkMsS0FBakM7QUFDQSxJQUFNQyxLQUFLLEdBQUNULDJDQUFTLENBQUNTLEtBQXRCLEMsQ0FFQTs7QUFDTyxTQUFTQyxhQUFULENBQXVCQyxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNLLFFBQXJDLEVBQThDSCxJQUE5QyxDQUFQLENBRGtDLENBRWxDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFlBQVQsQ0FBc0JKLElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQXZCLEVBQStCSyxJQUEvQixDQUFQLENBRGlDLENBRWpDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNLLFlBQVQsQ0FBc0JDLEVBQXRCLEVBQTBCO0FBQy9CLFNBQU9MLDREQUFLLENBQUNNLElBQU4sQ0FBV25CLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxDQUFQLENBRCtCLENBRS9CO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILEVBQXhCLEVBQTJCTixJQUEzQixFQUFpQztBQUN0QyxTQUFPQyw0REFBSyxDQUFDUyxJQUFOLENBQVd0QixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsRUFBZ0ROLElBQWhELENBQVAsQ0FEc0MsQ0FFdEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1csY0FBVCxDQUF3QlgsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURtQyxDQUVuQztBQUNEIiwiZmlsZSI6IjFhMjkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLlNoaWZ0O1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2hpZnRJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NoaWZ0L2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zaGlmdCcsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9zaGlmdC8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zaGlmdC8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TaGlmdERlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc2hpZnQvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///1a29\n')},"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},"247a":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCurrencyExchangeIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCurrencyExchangeSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCurrencyExchangeRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCurrencyExchangeUpdate; });\n/* unused harmony export crmCurrencyExchangeDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCurrencyExchangeIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange/list\', data);\n} // 创建\n\nfunction crmCurrencyExchangeSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange\', data);\n} // 根据id获取\n\nfunction crmCurrencyExchangeRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/currency-exchange/\' + id);\n} // 根据id修改\n\nfunction crmCurrencyExchangeUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/currency-exchange/\' + id, data);\n} // 删除\n\nfunction crmCurrencyExchangeDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency-exchange/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1cnJlbmN5RXhjaGFuZ2UvY3VycmVuY3lFeGNoYW5nZS5qcz8yNDdhIl0sIm5hbWVzIjpbImNybUN1cnJlbmN5RXhjaGFuZ2VJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VycmVuY3lFeGNoYW5nZVNhdmUiLCJjcm1DdXJyZW5jeUV4Y2hhbmdlUmVhZCIsImlkIiwiZ2V0cyIsImNybUN1cnJlbmN5RXhjaGFuZ2VVcGRhdGUiLCJwdXRzIiwiY3JtQ3VycmVuY3lFeGNoYW5nZURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0Esd0JBQVQsQ0FBa0NDLElBQWxDLEVBQXdDO0FBQzdDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxzQ0FBWixFQUFtREYsSUFBbkQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyx1QkFBVCxDQUFpQ0gsSUFBakMsRUFBdUM7QUFDNUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGlDQUFaLEVBQThDRixJQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLHVCQUFULENBQWlDQyxFQUFqQyxFQUFxQztBQUMxQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcscUNBQW1DRCxFQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLHlCQUFULENBQW1DRixFQUFuQyxFQUFzQ0wsSUFBdEMsRUFBNEM7QUFDakQsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHFDQUFtQ0gsRUFBOUMsRUFBaURMLElBQWpELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MseUJBQVQsQ0FBbUNULElBQW5DLEVBQXlDO0FBQzlDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx3Q0FBWixFQUFxREYsSUFBckQsQ0FBUDtBQUNEIiwiZmlsZSI6IjI0N2EuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lFeGNoYW5nZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lFeGNoYW5nZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS1leGNoYW5nZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeUV4Y2hhbmdlRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VycmVuY3ktZXhjaGFuZ2UvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///247a\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},"301a":function(module){eval('module.exports = JSON.parse("{\\"leads\\":{\\"id\\":\\"1\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"公司编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"公司名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"FullName\\",\\"name\\":\\"公司全称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"公司类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"主要产品\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PrimaryProduct\\",\\"setting\\":[]}]},\\"dicts\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"字典编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"字典名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"字典描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"transaction\\":{\\"id\\":\\"3\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"事务编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"事务名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"AllowedItemStatusList\\",\\"name\\":\\"允许的物品状态清单\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"AllowedInventoryStatusList\\",\\"name\\":\\"允许的库存状态清单\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"事务描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"strategy\\":{\\"id\\":\\"4\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"策略编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"策略名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Type\\",\\"name\\":\\"策略类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"策略描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"rule\\":{\\"id\\":\\"5\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"规则编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"规则名称\\",\\"minwidth\\":\\"35%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Value\\",\\"name\\":\\"规则值\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"规则描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"strategyRules\\":{\\"id\\":\\"6\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"StrategyName\\",\\"name\\":\\"策略名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"RuleName\\",\\"name\\":\\"规则名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Seq\\",\\"name\\":\\"顺序\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]}]},\\"verification\\":{\\"id\\":\\"7\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"验证编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"验证名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Type\\",\\"name\\":\\"验证类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Desc\\",\\"name\\":\\"验证描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"stage\\":{\\"id\\":\\"8\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"步骤编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"步骤名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"步骤描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"customer\\":{\\"id\\":\\"9\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"客户编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"客户名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Contact\\",\\"name\\":\\"联系人\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ContactPhone\\",\\"name\\":\\"联系电话\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"TaxRate\\",\\"name\\":\\"税率\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"CurrencyName\\",\\"name\\":\\"货币\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"CustomerType\\",\\"name\\":\\"客户类型\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3,\\"options\\":\\"是,否\\",\\"setting\\":[\\"是\\",\\"否\\"]},{\\"fieldId\\":2,\\"formType\\":\\"textarea\\",\\"fieldName\\":\\"Description\\",\\"name\\":\\"客户描述\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"slgItem\\":{\\"id\\":\\"10\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"fieldName\\":\\"SlgName\\",\\"name\\":\\"库位组\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ItemCode\\",\\"name\\":\\"物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"UomName\\",\\"name\\":\\"计量单位\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"int\\",\\"fieldName\\":\\"LocCapacity\\",\\"name\\":\\"库位容量\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Allowed\\",\\"name\\":\\"是否允许\\",\\"minwidth\\":\\"30%\\",\\"type\\":3},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"fieldName\\":\\"Enabled\\",\\"name\\":\\"是否可用\\",\\"minwidth\\":\\"30%\\",\\"type\\":3}]},\\"log\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"formType\\":\\"text\\",\\"fieldName\\":\\"leads_name\\",\\"name\\":\\"线索名称\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"telephone\\",\\"name\\":\\"电话\\",\\"setting\\":[]},{\\"formType\\":\\"mobile\\",\\"fieldName\\":\\"mobile\\",\\"name\\":\\"手机\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"address\\",\\"name\\":\\"地址\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"next_time\\",\\"name\\":\\"下次联系时间\\",\\"setting\\":[]},{\\"formType\\":\\"text\\",\\"fieldName\\":\\"remark\\",\\"name\\":\\"备注\\",\\"setting\\":[]},{\\"formType\\":\\"user\\",\\"fieldName\\":\\"owner_user_id\\",\\"name\\":\\"负责人\\",\\"setting\\":[]},{\\"formType\\":\\"user\\",\\"fieldName\\":\\"create_user_id\\",\\"name\\":\\"创建人\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"update_time\\",\\"name\\":\\"更新时间\\",\\"setting\\":[]},{\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"create_time\\",\\"name\\":\\"创建时间\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"name\\":\\"线索来源\\",\\"options\\":\\"促销,搜索引擎,广告,转介绍,线上注册,线上询价,预约上门,电话咨询,邮件咨询\\",\\"type\\":3,\\"fieldName\\":\\"线索来源\\",\\"setting\\":[\\"促销\\",\\"搜索引擎\\",\\"广告\\",\\"转介绍\\",\\"线上注册\\",\\"线上询价\\",\\"预约上门\\",\\"电话咨询\\",\\"邮件咨询\\"]},{\\"fieldId\\":5,\\"formType\\":\\"select\\",\\"name\\":\\"客户行业\\",\\"options\\":\\"IT,金融业,房地产,商业服务,运输/物流,生产,政府,文化传媒\\",\\"type\\":3,\\"fieldName\\":\\"客户行业\\",\\"setting\\":[\\"IT\\",\\"金融业\\",\\"房地产\\",\\"商业服务\\",\\"运输/物流\\",\\"生产\\",\\"政府\\",\\"文化传媒\\"]},{\\"fieldId\\":6,\\"formType\\":\\"select\\",\\"name\\":\\"客户级别\\",\\"options\\":\\"A(重点客户),B(普通客户),C(非优先客户)\\",\\"type\\":3,\\"fieldName\\":\\"客户级别\\",\\"setting\\":[\\"A(重点客户)\\",\\"B(普通客户)\\",\\"C(非优先客户)\\"]}]},\\"bom\\":{\\"id\\":\\"12\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Code\\",\\"name\\":\\"产品结构编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Name\\",\\"name\\":\\"产品结构名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ParentItemCode\\",\\"name\\":\\"主物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ChildItemCode\\",\\"name\\":\\"子物品编码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"minwidth\\":\\"30%\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"minwidth\\":\\"30%\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"fieldName\\":\\"ChildItemUomName\\",\\"name\\":\\"子物品计量单位名称\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"fieldName\\":\\"Qty\\",\\"name\\":\\"用量\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"setting\\":[]}]},\\"uomGroup\\":{\\"id\\":\\"13\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"uom\\":{\\"id\\":\\"14\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"派生自计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DerivedFrom\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomGroupName\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"EffectiveTime\\",\\"name\\":\\"生效时间\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"datetime\\",\\"fieldName\\":\\"ExpireTime\\",\\"name\\":\\"失效时间\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Desc\\",\\"setting\\":[]}]},\\"interfaceCalendar\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"接口日历编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"接口日历名称\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"日历年\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Year\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"日历月\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Month\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":7,\\"formType\\":\\"textarea\\",\\"isNull\\":0,\\"name\\":\\"接口日历描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"verificationStages\\":{\\"id\\":\\"16\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"验证\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"VerificationName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"步骤\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StageName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"int\\",\\"isNull\\":1,\\"name\\":\\"顺序\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Seq\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"datetime\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EffectiveTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"datetime\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ExpireTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"area\\":{\\"id\\":\\"17\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":1,\\"name\\":\\"是否功能区\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsFunctional\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"区域描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"areaItem\\":{\\"id\\":\\"18\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"currency\\":{\\"id\\":\\"19\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否基本货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsBasicCurrency\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"currencyExchange\\":{\\"id\\":\\"20\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"basicCurrency\\",\\"isNull\\":1,\\"name\\":\\"基本货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BasicCurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"rate\\",\\"isNull\\":1,\\"name\\":\\"比率\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Rate\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EfficetiveTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ExpireTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerBom\\":{\\"id\\":\\"21\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"parentItem\\",\\"isNull\\":1,\\"name\\":\\"主物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ParentItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"childItem\\",\\"isNull\\":1,\\"name\\":\\"子物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ChildItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"number4\\",\\"isNull\\":1,\\"name\\":\\"用量\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Qty\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EffectiveTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"失效时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"FailureTime\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerItem\\":{\\"id\\":\\"22\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"客户物品计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户物品描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"eqptType\\":{\\"id\\":\\"23\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许重复使用\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllowReusable\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许混物品\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllowMixItem\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具类型描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"eqptTypeItem\\":{\\"id\\":\\"24\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"eqptType\\",\\"isNull\\":1,\\"name\\":\\"器具类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EqptTypeName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"器具容量\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EqptCapacity\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"item\\":{\\"id\\":\\"25\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"显示编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DisplayCode\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"ERP物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ErpItemCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品版本号\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Status\\",\\"setting\\":[]},{\\"fieldId\\":23,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"itemTransTypeInventoryRoute\\":{\\"id\\":\\"26\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物品类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemType\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"inventoryRoute\\",\\"isNull\\":1,\\"name\\":\\"路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"InventoryRouteName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"itemTransTypeOpStrategy\\":{\\"id\\":\\"27\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"allocation\\",\\"isNull\\":1,\\"name\\":\\"分配\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AllocationName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工序\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OperateProcess\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"supplier\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"strategy\\",\\"isNull\\":1,\\"name\\":\\"策略\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StrategyName\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"loc\\":{\\"id\\":\\"28\\",\\"data\\":[{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"slg\\",\\"isNull\\":1,\\"name\\":\\"库位组\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SlgName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"wlg\\",\\"isNull\\":1,\\"name\\":\\"工作组\\",\\"options\\":null,\\"isUnique\\":0,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WlgName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]},{\\"fieldId\\":19,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"machine\\":{\\"id\\":\\"29\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"生产线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"workCenter\\",\\"isNull\\":1,\\"name\\":\\"工作中心\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WorkCenterName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"机器描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"param\\":{\\"id\\":\\"30\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数值\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Value\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数分组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Group\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"参数描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"port\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"收货口描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PortDesc\\",\\"setting\\":[]}]},\\"prodLine\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"disabled\\":true,\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"生产线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"prodLineItem\\":{\\"id\\":\\"33\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"生产线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"bom\\",\\"isNull\\":1,\\"name\\":\\"产品结构\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BomName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"RouteName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"project\\":{\\"id\\":\\"34\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Status\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"项目描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Desc\\",\\"setting\\":[]}]},\\"shift\\":{\\"id\\":\\"35\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班次描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"slg\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"slg\\",\\"isNull\\":1,\\"name\\":\\"溢流库位组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OverflowSlgName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"默认库存状态\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"DefaultInventoryStatus\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"领料优先级\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PickPriority\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"库位组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"supplier\\":{\\"id\\":\\"37\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系人\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Contact\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系电话\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ContactPhone\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"联系邮件\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ContactEmail\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"supplierItem\\":{\\"id\\":\\"38\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"supplier\\",\\"isNull\\":1,\\"name\\":\\"供应商\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品版本号\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"isNull\\":1,\\"name\\":\\"供应商物品计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商物品描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"team\\":{\\"id\\":\\"39\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"班组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"uomConversion\\":{\\"id\\":\\"40\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"int\\",\\"isNull\\":1,\\"name\\":\\"转换类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConversionType\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"convertUom\\",\\"isNull\\":1,\\"name\\":\\"转换计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConvertUomName\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"baseUom\\",\\"isNull\\":1,\\"name\\":\\"基本计量单位\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BaseUomName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"rate\\",\\"isNull\\":1,\\"name\\":\\"转换比率\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ConvertRate\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"计量单位转换描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"wlg\\":{\\"id\\":\\"41\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"Code\\",\\"isNull\\":1,\\"name\\":\\"工作组编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作组名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作组描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"wlgItem\\":{\\"id\\":\\"42\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"wlg\\",\\"isNull\\":1,\\"name\\":\\"工作组\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WlgName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":1,\\"name\\":\\"是否允许\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Allowed\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"workCalendar\\":{\\"id\\":\\"43\\",\\"data\\":[{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"模块\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Module\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作日历描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"workCenter\\":{\\"id\\":\\"44\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"prodLine\\",\\"isNull\\":1,\\"name\\":\\"工作中心编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ProdLineName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Type\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工作中心描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"inventoryRoute\\":{\\"id\\":\\"44\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"物流路线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"inventoryRouteDetail\\":{\\"id\\":\\"45\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"inventoryRoute\\",\\"isNull\\":1,\\"name\\":\\"物流路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"InventoryRouteName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"area\\",\\"isNull\\":1,\\"name\\":\\"区域\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"AreaName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"任务类型\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"TaskType\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"purchasePriceDetail\\":{\\"id\\":\\"46\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"PurchasePriceSheet\\",\\"isNull\\":1,\\"name\\":\\"价格单\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PurchasePriceSheetName\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"采购价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"PurchasePrice\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"purchasePriceSheet\\":{\\"id\\":\\"47\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"route\\":{\\"id\\":\\"48\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工艺路线描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"routeDetail\\":{\\"id\\":\\"49\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"route\\",\\"isNull\\":1,\\"name\\":\\"工艺路线\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"RouteName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"machine\\",\\"isNull\\":1,\\"name\\":\\"机器\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"MachineName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"工序\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"OperateProcess\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"workCenter\\",\\"isNull\\":1,\\"name\\":\\"工作中心\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"WorkCenterName\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"salePriceDetail\\":{\\"id\\":\\"50\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"SalePriceSheet\\",\\"isNull\\":1,\\"name\\":\\"销售价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SalePriceSheetName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SalePrice\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"是否可用\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"IsEnable\\",\\"setting\\":[]}]},\\"salePriceSheet\\":{\\"id\\":\\"51\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"isNull\\":1,\\"name\\":\\"客户\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"销售价格单价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]},\\"stdCostPriceDetail\\":{\\"id\\":\\"52\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"isNull\\":1,\\"name\\":\\"物品编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"开始时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"BeginTime\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"结束时间\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"EndTime\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StdCostPrice\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"stdCostPriceSheet\\":{\\"id\\":\\"53\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单编码\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Name\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"供应商名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"SupplierName\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"currency\\",\\"isNull\\":1,\\"name\\":\\"货币名称\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CurrencyName\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":1,\\"name\\":\\"标准成本价格单描述\\",\\"options\\":null,\\"isUnique\\":1,\\"inputTips\\":null,\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]}]}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIzMDFhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///301a\n')},"34a3":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjkyNEZERDVFRjEzRTExRTg4QkY0RTZEOTBENUJDRDVFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkyNEZERDVGRjEzRTExRTg4QkY0RTZEOTBENUJDRDVFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTI0RkRENUNGMTNFMTFFODhCRjRFNkQ5MEQ1QkNENUUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTI0RkRENURGMTNFMTFFODhCRjRFNkQ5MEQ1QkNENUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4jB+1jAAAAxUlEQVR42sxUQQ4CIQwEs0f1vKuJPkS/wSt5hu5D1oPLrnevWJJyaQIMGw5OMimhZVJaivbeq5bYqcbo4sJau1nEGFOV4YPo2eIZMnIFvSf8OlfD4PwSj7xOcc9xGmnKmzgUbnYmzmiXP8RTQTD4V1RwFoKTsAE90aGCKx+IuAgbM1xQQcc1KtUQFlxEU17CVl9ZCl6FrW6KA7vc9NkMHKfQhx0m4ZYQC/sHjivOsuKRGonPTIYjx0GC8SPYBP33P/ZPgAEAKNUs9Dp9fGoAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZz9iYTBkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiIzNGEzLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBVUNBWUFBQUNOaVIwTkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamt5TkVaRVJEVkZSakV6UlRFeFJUZzRRa1kwUlRaRU9UQkVOVUpEUkRWRklpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qa3lORVpFUkRWR1JqRXpSVEV4UlRnNFFrWTBSVFpFT1RCRU5VSkRSRFZGSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk9USTBSa1JFTlVOR01UTkZNVEZGT0RoQ1JqUkZOa1E1TUVRMVFrTkVOVVVpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2T1RJMFJrUkVOVVJHTVRORk1URkZPRGhDUmpSRk5rUTVNRVExUWtORU5VVWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRqQisxakFBQUF4VWxFUVZSNDJzeFVRUTRDSVF3RXMwZjF2S3VKUGtTL3dTdDVodTVEMW9QTHJuZXZXSkp5YVFJTUd3NU9NaW1oWlZKYWl2YmVxNWJZcWNibzRzSmF1MW5FR0ZPVjRZUG8yZUlaTW5JRnZTZjhPbGZENFB3U2o3eE9jYzl4R21uS216Z1Viblltem1pWFA4UlRRVEQ0VjFSd0ZvS1RzQUU5MGFHQ0t4K0l1QWdiTTF4UVFjYzFLdFVRRmx4RVUxN0NWbDlaQ2w2RnJXNktBN3ZjOU5rTUhLZlFoeDBtNFpZUUMvc0hqaXZPc3VLUkdvblBUSVlqeDBHQzhTUFlCUDMzUC9aUGdBRUFLTlVzOURwOWZHb0FBQUFBU1VWT1JLNUNZSUk9XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34a3\n')},"34aa":function(module){eval('module.exports = JSON.parse("{\\"router\\":{\\"apiRoute\\":\\"/api\\"},\\"modules\\":{\\"Manufacture\\":\\"/manufacture\\",\\"Sale\\":\\"/sale\\"},\\"crmTypes\\":{\\"Detail\\":\\"/details\\",\\"Bom\\":\\"/bom\\",\\"Machine\\":\\"/machine\\",\\"MachineShop\\":\\"/machineShop\\",\\"MachineShopItem\\":\\"/machineShopItem\\",\\"ProdLine\\":\\"/prodLine\\",\\"ProdLineItem\\":\\"/prodLineItem\\",\\"Route\\":\\"/route\\",\\"RouteDetail\\":\\"/routeDetail\\",\\"Shift\\":\\"/shift\\",\\"Team\\":\\"/team\\",\\"WorkCenter\\":\\"/workCenter\\",\\"Customer\\":\\"/customer\\",\\"CustomerItem\\":\\"/customerItem\\",\\"CustomerBom\\":\\"/customerBom\\"},\\"funcs\\":{\\"NullFunc\\":\\"/\\",\\"ListFunc\\":\\"/list\\",\\"CountFunc\\":\\"/count\\",\\"AllFunc\\":\\"/all\\",\\"AddFunc\\":\\"/add\\",\\"UpdateFunc\\":\\"/update\\",\\"DeleteFunc\\":\\"/delete\\",\\"ImportFunc\\":\\"/import\\"}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIzNGFhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///34aa\n')},"38c3":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* WEBPACK VAR INJECTION */(function(module) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return crmRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return crmRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return crmRouteUpdate; });\n/* unused harmony export crmRouteDelete */\n/* unused harmony export crmRouteDetailListRead */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmRouteDetailRead; });\n/* unused harmony export crmRouteDetailIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmRouteDetailAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmRouteDetailUpdate; });\n/* unused harmony export crmRouteDetailDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar routemodule = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Route;\nvar routeDetailmodule = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.RouteDetail;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Route;\nvar detailType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Detail;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; // 获取列表\n\nfunction crmRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + routemodule + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/route/list\',data)\n} // 创建\n\nfunction crmRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + routemodule + crmType, data); //return axios.posts(\'/api/basedata/route\',data)\n} // 根据id获取\n\nfunction crmRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/route/\'+id)\n} // 根据id修改\n\nfunction crmRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/route/\'+id,data)\n} // 删除\n\nfunction crmRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data);\n} //获取子项列表\n\nfunction crmRouteDetailListRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + id + detailType); //return axios.gets(api+module+crmType+id+\'/details\')\n} //按照主表ID和子表ID获取子项详细信息\n\nfunction crmRouteDetailRead(id, detailId) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + id + detailType + funcs.NullFunc + detailId); //return axios.gets(api+module+crmType+id+\'/details/\'+detailId)\n} //按筛选条件获取子项列表\n\nfunction crmRouteDetailIndex(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType, data); //return axios.posts(api+module+crmType+id+\'/details\',data)\n} //新增子项\n\nfunction crmRouteDetailAdd(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.AddFunc, data); //return axios.posts(api+module+crmType+id+\'/details/add\',data)\n} //修改子项\n\nfunction crmRouteDetailUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.UpdateFunc, data); //return axios.posts(api+module+crmType+id+\'/details/update\',data)\n} //删除子项\n\nfunction crmRouteDetailDelete(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + id + detailType + funcs.DelateFunc, data); //return axios.posts(api+module+crmType+id+\'/details/delete\',data)\n}\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("dd40")(module)))\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3JvdXRlL3JvdXRlLmpzPzM4YzMiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJyb3V0ZW1vZHVsZSIsIm1vZHVsZXMiLCJSb3V0ZSIsInJvdXRlRGV0YWlsbW9kdWxlIiwiUm91dGVEZXRhaWwiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJkZXRhaWxUeXBlIiwiRGV0YWlsIiwiZnVuY3MiLCJjcm1Sb3V0ZUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVJvdXRlU2F2ZSIsImNybVJvdXRlUmVhZCIsImlkIiwiZ2V0cyIsIm1vZHVsZSIsIk51bGxGdW5jIiwiY3JtUm91dGVVcGRhdGUiLCJwdXRzIiwiY3JtUm91dGVEZWxldGUiLCJEZWxldGVGdW5jIiwiY3JtUm91dGVEZXRhaWxMaXN0UmVhZCIsImNybVJvdXRlRGV0YWlsUmVhZCIsImRldGFpbElkIiwiY3JtUm91dGVEZXRhaWxJbmRleCIsImNybVJvdXRlRGV0YWlsQWRkIiwiQWRkRnVuYyIsImNybVJvdXRlRGV0YWlsVXBkYXRlIiwiVXBkYXRlRnVuYyIsImNybVJvdXRlRGV0YWlsRGVsZXRlIiwiRGVsYXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsV0FBVyxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxLQUFyQztBQUNBLElBQU1DLGlCQUFpQixHQUFFTiwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCRyxXQUEzQztBQUNBLElBQU1DLE9BQU8sR0FBQ1IsMkNBQVMsQ0FBQ1MsUUFBVixDQUFtQkosS0FBakM7QUFDQSxJQUFNSyxVQUFVLEdB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QWlDRSxLQUFLLENBQUN1QixVQUFuRCxFQUE4RHJCLElBQTlELENBQVAsQ0FENEMsQ0FFNUM7QUFDRCxDLENBRUQ7O0FBQ08sU0FBU3NCLG9CQUFULENBQThCaEIsRUFBOUIsRUFBaUNOLElBQWpDLEVBQXVDO0FBQzVDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWpCLEdBQUcsR0FBQ3VCLE1BQUosR0FBV2QsT0FBWCxHQUFtQlksRUFBbkIsR0FBc0JWLFVBQXRCLEdBQWlDRSxLQUFLLENBQUN5QixVQUFuRCxFQUE4RHZCLElBQTlELENBQVAsQ0FENEMsQ0FFNUM7QUFDRCxDIiwiZmlsZSI6IjM4YzMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IHJvdXRlbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5Sb3V0ZTtcclxuY29uc3Qgcm91dGVEZXRhaWxtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLlJvdXRlRGV0YWlsO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5Sb3V0ZTtcclxuY29uc3QgZGV0YWlsVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuRGV0YWlsO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJvdXRlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrcm91dGVtb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3JvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrcm91dGVtb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3JvdXRlJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9yb3V0ZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9yb3V0ZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbn1cclxuXHJcbi8v6I635Y+W5a2Q6aG55YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbExpc3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2lkK2RldGFpbFR5cGUpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzJylcclxufVxyXG5cclxuLy/mjInnhafkuLvooahJROWSjOWtkOihqElE6I635Y+W5a2Q6aG56K+m57uG5L+h5oGvXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbFJlYWQoaWQsZGV0YWlsSWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrZGV0YWlsVHlwZStmdW5jcy5OdWxsRnVuYytkZXRhaWxJZClcclxuICAvL3JldHVybiBheGlvcy5nZXRzKGFwaSttb2R1bGUrY3JtVHlwZStpZCsnL2RldGFpbHMvJytkZXRhaWxJZClcclxufVxyXG5cclxuLy/mjInnrZvpgInmnaHku7bojrflj5blrZDpobnliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJvdXRlRGV0YWlsSW5kZXgoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrZGV0YWlsVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCsnL2RldGFpbHMnLGRhdGEpXHJcbn1cclxuXHJcbi8v5paw5aKe5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbEFkZChpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLkFkZEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL2FkZCcsZGF0YSlcclxufVxyXG4gXHJcbi8v5L+u5pS55a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLlVwZGF0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL3VwZGF0ZScsZGF0YSlcclxufVxyXG4gXHJcbi8v5Yig6Zmk5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Sb3V0ZURldGFpbERlbGV0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStpZCtkZXRhaWxUeXBlK2Z1bmNzLkRlbGF0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUraWQrJy9kZXRhaWxzL2RlbGV0ZScsZGF0YSlcclxufVxyXG5cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///38c3\n')},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"41d5":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomGroupIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomGroupSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomGroupRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomGroupUpdate; });\n/* unused harmony export crmUomGroupDelete */\n/* unused harmony export winUomGroupExcelImportTemplate */\n/* unused harmony export winUomGroupExcelImport */\n/* unused harmony export winUomGroupExcelAllExport */\n/* harmony import */ var _axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n\nfunction crmUomGroupIndex(data) {\n //获取列表数据\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/list\', data);\n}\nfunction crmUomGroupSave(data) {\n //新增\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group\', data);\n}\nfunction crmUomGroupRead(id) {\n //根据id获取单条数据\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-group/\' + id);\n}\nfunction crmUomGroupUpdate(id, data) {\n //更新\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom-group/\' + id, data);\n}\nfunction crmUomGroupDelete(data) {\n //删除\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/delete\', data);\n} //生成模板\n\nfunction winUomGroupExcelImportTemplate(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/saveUomGroupExcelImportTemplate\', data);\n} //导入功能\n\nfunction winUomGroupExcelImport(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-group/UomGroupExcelImport\', data);\n} //导出功能(不关联组织ID)\n\nfunction winUomGroupExcelAllExport(data) {\n return _axios__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-group/UomGroupExcelExporte\', data);\n} //导入功能\n// export function winUomGroupExcelImport(data) {\n// var param = new FormData()\n// Object.keys(data).forEach(key => {\n// param.append(key, data[key])\n// })\n// return request({\n// url: \'/api/basedata/uom-group/UomGroupExcelImport\',\n// method: \'post\',\n// data: param,\n// headers: {\n// \'Content-Type\': \'multipart/form-data\'\n// }\n// })\n// }\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbUdyb3VwL3VvbUdyb3VwLmpzPzQxZDUiXSwibmFtZXMiOlsiY3JtVW9tR3JvdXBJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tR3JvdXBTYXZlIiwiY3JtVW9tR3JvdXBSZWFkIiwiaWQiLCJnZXRzIiwiY3JtVW9tR3JvdXBVcGRhdGUiLCJwdXRzIiwiY3JtVW9tR3JvdXBEZWxldGUiLCJ3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0VGVtcGxhdGUiLCJ3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0Iiwid2luVW9tR3JvdXBFeGNlbEFsbEV4cG9ydCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTs7QUFDTyxTQUFTQSxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFBQztBQUN0QyxTQUFPQyxzREFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRDtBQUNNLFNBQVNHLGVBQVQsQ0FBeUJILElBQXpCLEVBQStCO0FBQUM7QUFDckMsU0FBT0Msc0RBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0Q7QUFDTSxTQUFTSSxlQUFULENBQXlCQyxFQUF6QixFQUE2QjtBQUFDO0FBQ25DLFNBQU9KLHNEQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRDtBQUNNLFNBQVNFLGlCQUFULENBQTJCRixFQUEzQixFQUE4QkwsSUFBOUIsRUFBb0M7QUFBQztBQUMxQyxTQUFPQyxzREFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNEO0FBQ00sU0FBU1MsaUJBQVQsQ0FBMkJULElBQTNCLEVBQWlDO0FBQUM7QUFDdkMsU0FBT0Msc0RBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNVLDhCQUFULENBQXdDVixJQUF4QyxFQUE4QztBQUNuRCxTQUFPQyxzREFBSyxDQUFDQyxLQUFOLENBQVkseURBQVosRUFBc0VGLElBQXRFLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1csc0JBQVQsQ0FBZ0NYLElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLHNEQUFLLENBQUNDLEtBQU4sQ0FBWSw2Q0FBWixFQUEwREYsSUFBMUQsQ0FBUDtBQUNELEMsQ0FFRDs7QUFDTyxTQUFTWSx5QkFBVCxDQUFtQ1osSUFBbkMsRUFBeUM7QUFDOUMsU0FBT0Msc0RBQUssQ0FBQ0ssSUFBTixDQUFXLDhDQUFYLEVBQTBETixJQUExRCxDQUFQO0FBQ0QsQyxDQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiI0MWQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MnXHJcbi8qYXhpb3MqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tR3JvdXBJbmRleChkYXRhKSB7Ly/ojrflj5bliJfooajmlbDmja5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL2xpc3QnLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwU2F2ZShkYXRhKSB7Ly/mlrDlop5cclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwJyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Hcm91cFJlYWQoaWQpIHsvL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwLycraWQpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwVXBkYXRlKGlkLGRhdGEpIHsvL+abtOaWsFxyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS1ncm91cC8nK2lkLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVVvbUdyb3VwRGVsZXRlKGRhdGEpIHsvL+WIoOmZpFxyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tZ3JvdXAvZGVsZXRlJyxkYXRhKVxyXG59XHJcblxyXG4vL+eUn+aIkOaooeadv1xyXG5leHBvcnQgZnVuY3Rpb24gd2luVW9tR3JvdXBFeGNlbEltcG9ydFRlbXBsYXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL3NhdmVVb21Hcm91cEV4Y2VsSW1wb3J0VGVtcGxhdGUnLGRhdGEpXHJcbn1cclxuLy/lr7zlhaXlip/og71cclxuZXhwb3J0IGZ1bmN0aW9uIHdpblVvbUdyb3VwRXhjZWxJbXBvcnQoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tZ3JvdXAvVW9tR3JvdXBFeGNlbEltcG9ydCcsZGF0YSlcclxufVxyXG5cclxuLy/lr7zlh7rlip/og73vvIjkuI3lhbPogZTnu4Tnu4dJRO+8iVxyXG5leHBvcnQgZnVuY3Rpb24gd2luVW9tR3JvdXBFeGNlbEFsbEV4cG9ydChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL1VvbUdyb3VwRXhjZWxFeHBvcnRlJyxkYXRhKVxyXG59XHJcbi8v5a+85YWl5Yqf6IO9XHJcbi8vIGV4cG9ydCBmdW5jdGlvbiB3aW5Vb21Hcm91cEV4Y2VsSW1wb3J0KGRhdGEpIHtcclxuLy8gICB2YXIgcGFyYW0gPSBuZXcgRm9ybURhdGEoKVxyXG4vLyAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goa2V5ID0+IHtcclxuLy8gICAgIHBhcmFtLmFwcGVuZChrZXksIGRhdGFba2V5XSlcclxuLy8gICB9KVxyXG4vLyAgIHJldHVybiByZXF1ZXN0KHtcclxuLy8gICAgIHVybDogJy9hcGkvYmFzZWRhdGEvdW9tLWdyb3VwL1VvbUdyb3VwRXhjZWxJbXBvcnQnLFxyXG4vLyAgICAgbWV0aG9kOiAncG9zdCcsXHJcbi8vICAgICBkYXRhOiBwYXJhbSxcclxuLy8gICAgIGhlYWRlcnM6IHtcclxuLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJ1xyXG4vLyAgICAgfVxyXG4vLyAgIH0pXHJcbi8vIH1cclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///41d5\n')},4381:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__("6762");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__("2fdb");\n\n// EXTERNAL MODULE: ./src/store/index.js + 1 modules\nvar store = __webpack_require__("4360");\n\n// CONCATENATED MODULE: ./src/directive/permission/permission.js\n\n\n\n/* harmony default export */ var permission = ({\n inserted: function inserted(el, binding, vnode) {\n var value = binding.value;\n var roles = store["a" /* default */].getters && store["a" /* default */].getters.roles;\n\n if (value && value instanceof Array && value.length > 0) {\n var permissionRoles = value;\n var hasPermission = roles.some(function (role) {\n return permissionRoles.includes(role);\n });\n\n if (!hasPermission) {\n el.parentNode && el.parentNode.removeChild(el);\n }\n } else {\n throw new Error("need roles! Like v-permission=\\"[\'admin\',\'editor\']\\"");\n }\n }\n});\n// CONCATENATED MODULE: ./src/directive/permission/index.js\n\n\nvar permission_install = function install(Vue) {\n Vue.directive(\'permission\', permission);\n};\n\nif (window.Vue) {\n window[\'permission\'] = permission;\n Vue.use(permission_install); // eslint-disable-line\n}\n\npermission.install = permission_install;\n/* harmony default export */ var directive_permission = __webpack_exports__["a"] = (permission);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvZGlyZWN0aXZlL3Blcm1pc3Npb24vcGVybWlzc2lvbi5qcz9lNzk5Iiwid2VicGFjazovLy8uL3NyYy9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qcz80MzgxIl0sIm5hbWVzIjpbImluc2VydGVkIiwiZWwiLCJiaW5kaW5nIiwidm5vZGUiLCJ2YWx1ZSIsInJvbGVzIiwic3RvcmUiLCJnZXR0ZXJzIiwiQXJyYXkiLCJsZW5ndGgiLCJwZXJtaXNzaW9uUm9sZXMiLCJoYXNQZXJtaXNzaW9uIiwic29tZSIsInJvbGUiLCJpbmNsdWRlcyIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsIkVycm9yIiwiaW5zdGFsbCIsIlZ1ZSIsImRpcmVjdGl2ZSIsInBlcm1pc3Npb24iLCJ3aW5kb3ciLCJ1c2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUVlO0FBQ2JBLFVBRGEsb0JBQ0pDLEVBREksRUFDQUMsT0FEQSxFQUNTQyxLQURULEVBQ2dCO0FBQzNCLFFBQVFDLEtBQVIsR0FBa0JGLE9BQWxCLENBQVFFLEtBQVI7QUFDQSxRQUFNQyxLQUFLLEdBQUdDLHdCQUFLLENBQUNDLE9BQU4sSUFBaUJELHdCQUFLLENBQUNDLE9BQU4sQ0FBY0YsS0FBN0M7O0FBRUEsUUFBSUQsS0FBSyxJQUFJQSxLQUFLLFlBQVlJLEtBQTFCLElBQW1DSixLQUFLLENBQUNLLE1BQU4sR0FBZSxDQUF0RCxFQUF5RDtBQUN2RCxVQUFNQyxlQUFlLEdBQUdOLEtBQXhCO0FBRUEsVUFBTU8sYUFBYSxHQUFHTixLQUFLLENBQUNPLElBQU4sQ0FBVyxVQUFBQyxJQUFJLEVBQUk7QUFDdkMsZUFBT0gsZUFBZSxDQUFDSSxRQUFoQixDQUF5QkQsSUFBekIsQ0FBUDtBQUNELE9BRnFCLENBQXRCOztBQUlBLFVBQUksQ0FBQ0YsYUFBTCxFQUFvQjtBQUNsQlYsVUFBRSxDQUFDYyxVQUFILElBQWlCZCxFQUFFLENBQUNjLFVBQUgsQ0FBY0MsV0FBZCxDQUEwQmYsRUFBMUIsQ0FBakI7QUFDRDtBQUNGLEtBVkQsTUFVTztBQUNMLFlBQU0sSUFBSWdCLEtBQUosd0RBQU47QUFDRDtBQUNGO0FBbEJZLENBQWYsRTs7QUNGQTs7QUFFQSxJQUFNQyxrQkFBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBU0MsR0FBVCxFQUFjO0FBQzVCQSxLQUFHLENBQUNDLFNBQUosQ0FBYyxZQUFkLEVBQTRCQyxVQUE1QjtBQUNELENBRkQ7O0FBSUEsSUFBSUMsTUFBTSxDQUFDSCxHQUFYLEVBQWdCO0FBQ2RHLFFBQU0sQ0FBQyxZQUFELENBQU4sR0FBdUJELFVBQXZCO0FBQ0FGLEtBQUcsQ0FBQ0ksR0FBSixDQUFRTCxrQkFBUixFQUZjLENBRUk7QUFDbkI7O0FBRURHLFVBQVUsQ0FBQ0gsT0FBWCxHQUFxQkEsa0JBQXJCO0FBQ2VHLDhGQUFmIiwiZmlsZSI6IjQzODEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3RvcmUgZnJvbSAnQC9zdG9yZSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBpbnNlcnRlZChlbCwgYmluZGluZywgdm5vZGUpIHtcclxuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGJpbmRpbmdcclxuICAgIGNvbnN0IHJvbGVzID0gc3RvcmUuZ2V0dGVycyAmJiBzdG9yZS5nZXR0ZXJzLnJvbGVzXHJcblxyXG4gICAgaWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBwZXJtaXNzaW9uUm9sZXMgPSB2YWx1ZVxyXG5cclxuICAgICAgY29uc3QgaGFzUGVybWlzc2lvbiA9IHJvbGVzLnNvbWUocm9sZSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25Sb2xlcy5pbmNsdWRlcyhyb2xlKVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgaWYgKCFoYXNQZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgZWwucGFyZW50Tm9kZSAmJiBlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG5lZWQgcm9sZXMhIExpa2Ugdi1wZXJtaXNzaW9uPVwiWydhZG1pbicsJ2VkaXRvciddXCJgKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbXBvcnQgcGVybWlzc2lvbiBmcm9tICcuL3Blcm1pc3Npb24nXHJcblxyXG5jb25zdCBpbnN0YWxsID0gZnVuY3Rpb24oVnVlKSB7XHJcbiAgVnVlLmRpcmVjdGl2ZSgncGVybWlzc2lvbicsIHBlcm1pc3Npb24pXHJcbn1cclxuXHJcbmlmICh3aW5kb3cuVnVlKSB7XHJcbiAgd2luZG93WydwZXJtaXNzaW9uJ10gPSBwZXJtaXNzaW9uXHJcbiAgVnVlLnVzZShpbnN0YWxsKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxyXG59XHJcblxyXG5wZXJtaXNzaW9uLmluc3RhbGwgPSBpbnN0YWxsXHJcbmV4cG9ydCBkZWZhdWx0IHBlcm1pc3Npb25cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///4381\n')},"4a49":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerUpdate; });\n/* unused harmony export crmCustomerDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Bom;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; // 获取列表\n\nfunction crmCustomerIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer/list\', data);\n} // 创建\n\nfunction crmCustomerSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer\', data);\n} // 根据id获取\n\nfunction crmCustomerRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer/\' + id);\n} // 根据id修改\n\nfunction crmCustomerUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer/\' + id, data);\n} // 删除\n\nfunction crmCustomerDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVyL2N1c3RvbWVyLmpzPzRhNDkiXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJCb20iLCJmdW5jcyIsImNybUN1c3RvbWVySW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsImNybUN1c3RvbWVyU2F2ZSIsImNybUN1c3RvbWVyUmVhZCIsImlkIiwiZ2V0cyIsImNybUN1c3RvbWVyVXBkYXRlIiwicHV0cyIsImNybUN1c3RvbWVyRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxHQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiNGE0OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG5pbXBvcnQgYXBpQ29uZmlnIGZyb20gJ0AvYXBpL2FwaUNvbmZpZydcclxuXHJcbmNvbnN0IGFwaT0gYXBpQ29uZmlnLnJvdXRlci5hcGlSb3V0ZTtcclxuY29uc3QgbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5NYW51ZmFjdHVyZTtcclxuY29uc3QgY3JtVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuQm9tO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVyUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVyVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckRlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4a49\n')},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},"4fee":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProjectIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProjectSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProjectRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProjectUpdate; });\n/* unused harmony export crmProjectDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmProjectIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project/list\', data);\n} // 创建\n\nfunction crmProjectSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project\', data);\n} // 根据id获取\n\nfunction crmProjectRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/project/\' + id);\n} // 根据id修改\n\nfunction crmProjectUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/project/\' + id, data);\n} // 删除\n\nfunction crmProjectDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/project/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2plY3QvcHJvamVjdC5qcz80ZmVlIl0sIm5hbWVzIjpbImNybVByb2plY3RJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUHJvamVjdFNhdmUiLCJjcm1Qcm9qZWN0UmVhZCIsImlkIiwiZ2V0cyIsImNybVByb2plY3RVcGRhdGUiLCJwdXRzIiwiY3JtUHJvamVjdERlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsZUFBVCxDQUF5QkMsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILElBQXhCLEVBQThCO0FBQ25DLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx1QkFBWixFQUFvQ0YsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxjQUFULENBQXdCQyxFQUF4QixFQUE0QjtBQUNqQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsMkJBQXlCRCxFQUFwQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGdCQUFULENBQTBCRixFQUExQixFQUE2QkwsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLDJCQUF5QkgsRUFBcEMsRUFBdUNMLElBQXZDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsZ0JBQVQsQ0FBMEJULElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSw4QkFBWixFQUEyQ0YsSUFBM0MsQ0FBUDtBQUNEIiwiZmlsZSI6IjRmZWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0L2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0U2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2plY3QnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2plY3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcHJvamVjdC8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9qZWN0VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0LycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2plY3REZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9qZWN0L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4fee\n')},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},5092:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWorkCalendarIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWorkCalendarSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWorkCalendarRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWorkCalendarUpdate; });\n/* unused harmony export crmWorkCalendarDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWorkCalendarIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar/list\', data);\n} // 创建\n\nfunction crmWorkCalendarSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar\', data);\n} // 根据id获取\n\nfunction crmWorkCalendarRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/work-calendar/\' + id);\n} // 根据id修改\n\nfunction crmWorkCalendarUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/work-calendar/\' + id, data);\n} // 删除\n\nfunction crmWorkCalendarDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/work-calendar/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dvcmtDYWxlbmRhci93b3JrQ2FsZW5kYXIuanM/NTA5MiJdLCJuYW1lcyI6WyJjcm1Xb3JrQ2FsZW5kYXJJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV29ya0NhbGVuZGFyU2F2ZSIsImNybVdvcmtDYWxlbmRhclJlYWQiLCJpZCIsImdldHMiLCJjcm1Xb3JrQ2FsZW5kYXJVcGRhdGUiLCJwdXRzIiwiY3JtV29ya0NhbGVuZGFyRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiNTA5Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhckluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvd29yay1jYWxlbmRhci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV29ya0NhbGVuZGFyU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dvcmstY2FsZW5kYXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhclJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93b3JrLWNhbGVuZGFyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDYWxlbmRhclVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvd29yay1jYWxlbmRhci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2FsZW5kYXJEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrLWNhbGVuZGFyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5092\n')},"53c1":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmVerificationIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmVerificationSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmVerificationRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmVerificationUpdate; });\n/* unused harmony export crmVerificationDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n// 获取列表\n\nfunction crmVerificationIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification/list\', data);\n} // 创建\n\nfunction crmVerificationSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification\', data);\n} // 根据id获取\n\nfunction crmVerificationRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/verification/\' + id);\n} // 根据id修改\n\nfunction crmVerificationUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/verification/\' + id, data);\n} // 删除\n\nfunction crmVerificationDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/verification/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3ZlcmlmaWNhdGlvbi92ZXJpZmljYXRpb24uanM/NTNjMSJdLCJuYW1lcyI6WyJjcm1WZXJpZmljYXRpb25JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVmVyaWZpY2F0aW9uU2F2ZSIsImNybVZlcmlmaWNhdGlvblJlYWQiLCJpZCIsImdldHMiLCJjcm1WZXJpZmljYXRpb25VcGRhdGUiLCJwdXRzIiwiY3JtVmVyaWZpY2F0aW9uRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFrQztBQUNsQzs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGlDQUFaLEVBQThDRixJQUE5QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNEJBQVosRUFBeUNGLElBQXpDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxnQ0FBOEJELEVBQXpDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsZ0NBQThCSCxFQUF6QyxFQUE0Q0wsSUFBNUMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFaLEVBQWdERixJQUFoRCxDQUFQO0FBQ0QiLCJmaWxlIjoiNTNjMS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4JyAvKmF4aW9zKi9cclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVmVyaWZpY2F0aW9uU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbicsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVmVyaWZpY2F0aW9uUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3ZlcmlmaWNhdGlvbi8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1WZXJpZmljYXRpb25EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS92ZXJpZmljYXRpb24vZGVsZXRlJyxkYXRhKVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///53c1\n')},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"5e2f":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("731e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6bf68050_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/ZDBlMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiNWUyZi5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YmY2ODA1MCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5e2f\n')},"67e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=template&id=6bf68050&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"车型代码","prop":"VehicleModelCode"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.listQuery, "vehicleModelCode", $$v)},expression:"listQuery.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"请输入版本","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\', \'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.OnlineTimeValue),callback:function ($$v) {_vm.OnlineTimeValue=$$v},expression:"OnlineTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus","loading":_vm.buttonLoading},on:{"click":function($event){return _vm.handleUpdate()}}},[_vm._v("重新解析(批量操作) ")])],1),_c(\'el-form-item\',[_c(\'el-button\',{staticClass:"addAssy",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus"},on:{"click":_vm.handleCreate}},[_vm._v("添加总成 ")])],1),_c(\'el-form-item\',{attrs:{"label":"扫描点","prop":"ScanPoint"}},[_c(\'el-select\',{staticStyle:{"width":"200px"},attrs:{"placeholder":"请选择","clearable":""},model:{value:(_vm.listQuery.ScanPoint),callback:function ($$v) {_vm.$set(_vm.listQuery, "ScanPoint", $$v)},expression:"listQuery.ScanPoint"}},_vm._l((_vm.ScanPointList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.label,"value":item.id}})}),1)],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownloadNotRepeat()}}},[_vm._v("导出(不重复) ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"plain":"","size":"mini","type":"success","icon":"el-icon-check","loading":_vm.button2Loading},on:{"click":function($event){return _vm.handleUpdateAll()}}},[_vm._v("重新解析(执行全部) ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%","margin-top":"-25px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"44px"}}),_c(\'el-table-column\',{attrs:{"label":"大众顺序号","prop":"hostSN","sortable":"","align":"center","width":"110px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.hostSN))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"append-to-body":"","width":"1000px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event}}},[_c(\'div\',{staticStyle:{"width":"980px","height":"600px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":8}},[_c(\'div\',{staticStyle:{"border":"1px","width":"280px"}},[_c(\'el-row\',[_c(\'div\',{staticClass:"app"},[_c(\'el-table\',{ref:"asTable",staticStyle:{"margin":"0px","width":"280px"},attrs:{"border":"","height":"260px","data":_vm.erpAssemblyCfgList,"highlight-current-row":""},on:{"row-click":_vm.rowClickass,"select":_vm.selectAss}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyCode","label":"总成编号","align":"center","width":"178px"}}),_c(\'el-table-column\',{attrs:{"align":"center","width":"61px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","size":"mini","align":"left"},on:{"click":function($event){return _vm.delzc(scope.$index, scope.row)}}})]}}])})],1)],1)]),_c(\'el-row\',[_c(\'div\',{staticStyle:{"width":"280px","border":"1px"}},[_c(\'el-divider\',{attrs:{"content-position":"center"}},[_vm._v("添加Erp总成")]),_c(\'el-form\',{ref:"assly",staticStyle:{"border":"1px"},attrs:{"label-position":_vm.labelPosition,"label-width":"100px","model":_vm.assly,"border":""}},[_c(\'el-form-item\',{staticStyle:{"height":"40px","width":"280px"},attrs:{"label":"Erp总成编码"}},[_c(\'el-input\',{attrs:{"clearable":"","placeholder":"请输入Erp总成编码"},model:{value:(_vm.assly.erpAssemblyCode),callback:function ($$v) {_vm.$set(_vm.assly, "erpAssemblyCode", $$v)},expression:"assly.erpAssemblyCode"}})],1),_c(\'el-form-item\',{staticStyle:{"height":"40px","width":"280px"},attrs:{"label":"Erp总成名称"}},[_c(\'el-input\',{attrs:{"clearable":"","placeholder":"请输入Erp总成名称"},model:{value:(_vm.assly.erpAssemblyName),callback:function ($$v) {_vm.$set(_vm.assly, "erpAssemblyName", $$v)},expression:"assly.erpAssemblyName"}})],1),_c(\'el-form-item\',{staticStyle:{"height":"40px"},attrs:{"label":"车型"}},[_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择车型"},model:{value:(_vm.assly.carModel),callback:function ($$v) {_vm.$set(_vm.assly, "carModel", $$v)},expression:"assly.carModel"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":function($event){return _vm.submitAssyForm(\'assly\')}}},[_vm._v("添加")])],1)],1)],1)])],1)]),_c(\'el-col\',{attrs:{"span":7}},[_c(\'div\',{staticStyle:{"border":"1px","height":"570px","width":"270px"}},[_c(\'el-table\',{ref:"leftTable",attrs:{"data":_vm.tempdetails,"height":"550","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.rowClickLeft,"select":_vm.selectLeft,"select-all":_vm.selectLeftAll}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"结算件代码","width":"150px","align":"center"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"数量","width":"78px","align":"center"}})],1)],1)]),_c(\'el-col\',{attrs:{"span":2}},[_c(\'div\',{staticStyle:{"height":"570px","width":"70px"},attrs:{"align":"center"}},[_c(\'el-row\',{staticStyle:{"line-height":"300px"}},[_c(\'el-button\',{attrs:{"icon":"el-icon-caret-left"},on:{"click":function($event){return _vm.btnleftclick()}}})],1),_c(\'el-row\',[_c(\'el-button\',{attrs:{"icon":"el-icon-caret-right"},on:{"click":function($event){return _vm.btnrightclick()}}})],1)],1)]),_c(\'el-col\',{attrs:{"span":7}},[_c(\'div\',{staticStyle:{"border":"1px","height":"570px","width":"270px"}},[_c(\'el-table\',{ref:"rightTable",attrs:{"data":_vm.data2,"height":"550","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.rowClickRight,"select":_vm.selectRight,"select-all":_vm.selectRightAll}},[_c(\'el-table-column\',{attrs:{"type":"selection","width":"40px"}}),_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"结算件代码","width":"150px","align":"center"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"数量","width":"78px","align":"center"}})],1)],1)])],1),_c(\'div\',{staticClass:"dialog-footer",staticStyle:{"width":"950px"},attrs:{"slot":"footer","align":"right"},slot:"footer"},[_c(\'el-button\',{attrs:{"loading":_vm.formLoading,"type":"primary"},on:{"click":_vm.save}},[_vm._v("确认")])],1)],1)]),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogNumVisible,"close-on-click-modal":false,"title":_vm.numTitle,"append-to-body":"","width":"570px"},on:{"update:visible":function($event){_vm.dialogNumVisible=$event}}},[_c(\'div\',[_c(\'el-form\',{ref:"numFormData",staticClass:"num-ruleForm",attrs:{"model":_vm.numFormData,"label-width":"100px"}},[_c(\'el-form-item\',{attrs:{"label":"数量","prop":"num","rules":[{ required: true, message: \'数量不能为空且至少为1\' }]}},[_c(\'el-input\',{attrs:{"type":"text"},model:{value:(_vm.numFormData.num),callback:function ($$v) {_vm.$set(_vm.numFormData, "num", $$v)},expression:"numFormData.num"}})],1)],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"loading":_vm.formLoading,"type":"primary"},on:{"click":function($event){return _vm.saveNum()}}},[_vm._v("确认")]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogNumVisible = false}}},[_vm._v("取消")])],1)])],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=template&id=6bf68050&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=template&id=593e4c66&scoped=true&\nvar detailvue_type_template_id_593e4c66_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'table\',{staticStyle:{"width":"99%"}},[_c(\'tr\',[_c(\'td\',[_c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"客户零件代码","prop":"partCode ","sortable":"custom","align":"center","width":"220px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',[_vm._v(_vm._s(scope.row.partCode))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2)],1)])]),_c(\'tr\',{staticStyle:{"height":"20px"}},[_c(\'td\',[_c(\'div\',{attrs:{"align":"center"}},[_vm._v("共"+_vm._s(_vm.pagecount)+"条数据")])])])])])}\nvar detailvue_type_template_id_593e4c66_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=template&id=593e4c66&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// EXTERNAL MODULE: ./node_modules/runjs/lib/common.js\nvar common = __webpack_require__("235d");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n pagecount: 0,\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30 - 50,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 67 - 79 - 50; //57为footer高度,79为页面上部标签高度\n //this.tableHeight = offsetHei -260\n });\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30 - 50;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this2 = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this2.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = []; //tempsTabs.push({ label: "客户零件代码", prop: "partCode ", width: 120 });\n\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 95\n });\n tempsTabs.push({\n label: "描述",\n prop: "description",\n width: 280\n });\n return tempsTabs;\n }\n },\n methods: {\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n // fieldFormatter(row, column) {\n // return row[column.property] || "--";\n // },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this3 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n this.$axios.gets("/api/newjit/unknown-assembly/" + this.customerInfo.parentId).then(function (response) {\n _this3.list = response.item.unknownAssemblyParts;\n _this3.pagecount = response.item.unknownAssemblyParts.length; //console.log("pagecountpagecountpagecountpagecountpagecount:" + JSON.stringify(this.pagecount));\n\n setTimeout(function () {\n //大数据量加载时\n _this3.listLoading = false;\n }, 500);\n }).catch(function () {\n _this3.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n return {\n textAlign: "left"\n };\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n },\n handleRowClick: function handleRowClick(row, column, event) {\n //this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var unknownAssembly_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue?vue&type=style&index=0&id=593e4c66&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_593e4c66_lang_scss_scoped_true_ = __webpack_require__("8d6c");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n unknownAssembly_detailvue_type_script_lang_js_,\n detailvue_type_template_id_593e4c66_scoped_true_render,\n detailvue_type_template_id_593e4c66_scoped_true_staticRenderFns,\n false,\n null,\n "593e4c66",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=script&lang=js&\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var unknownAssemblyvue_type_script_lang_js_ = ({\n name: "UnknownAssembly",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var _ref;\n\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return _ref = {\n crmType: "bomdatabase",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n OnlineTimeValue: [],\n //上线时间\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n asTemp: [],\n //总成编号点击缓存\n rightRowTemp: [],\n //右侧移动点击缓存\n leftRowTemp: [],\n //左侧移动点击缓存\n selectioned: "",\n //单选中的值\n carModels: [],\n //车型下拉框数据源\n currentRow: "",\n versionList: [],\n //版本列表\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n SkipCount: 0,\n MaxResultCount: 15,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n KNR: undefined,\n VIN: undefined,\n ScanPoint: undefined,\n BillDescription: undefined\n },\n listUnknownAssemblyQuery: {\n billId: "",\n //apply:"",\n vin: ""\n },\n page: 1,\n // 显示搜索条件\n showSearch: true,\n bomUnit: bomUnit,\n multipleSelection: []\n }, Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "dialogFormVisible", false), Object(defineProperty["a" /* default */])(_ref, "dialogNumVisible", false), Object(defineProperty["a" /* default */])(_ref, "formTitle", ""), Object(defineProperty["a" /* default */])(_ref, "numTitle", ""), Object(defineProperty["a" /* default */])(_ref, "isEdit", false), Object(defineProperty["a" /* default */])(_ref, "formLoading", false), Object(defineProperty["a" /* default */])(_ref, "buttonLoading", false), Object(defineProperty["a" /* default */])(_ref, "button2Loading", false), Object(defineProperty["a" /* default */])(_ref, "tableHeight", document.documentElement.clientHeight - 220), Object(defineProperty["a" /* default */])(_ref, "numFormData", {\n num: 1\n }), Object(defineProperty["a" /* default */])(_ref, "zcCode", []), Object(defineProperty["a" /* default */])(_ref, "tempAssCfgList", []), Object(defineProperty["a" /* default */])(_ref, "data2", []), Object(defineProperty["a" /* default */])(_ref, "tempdetails", [//{\n // partCode: "1",\n // partNum: 0,\n // isKey: true\n //}\n ]), Object(defineProperty["a" /* default */])(_ref, "erpAssemblyCfgList", []), Object(defineProperty["a" /* default */])(_ref, "labelPosition", "left"), Object(defineProperty["a" /* default */])(_ref, "assly", {\n erpAssemblyCode: "",\n erpAssemblyName: "",\n carModel: ""\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelQuery", {\n dicTypeName: "格拉默车型"\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), Object(defineProperty["a" /* default */])(_ref, "ScanPointList", [{\n id: "0",\n label: " "\n }, {\n id: "R100",\n label: "R100"\n }, {\n id: "M100",\n label: "M100"\n }]), _ref;\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this.$refs.box.offsetHeight;\n _this.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n });\n },\n created: function created() {\n this.getvehicleModel();\n this.getList();\n },\n computed: {\n getDefaultField: function getDefaultField() {\n var tempsTabs = []; // tempsTabs.push({\n // label: "大众顺序号",\n // prop: "hostSN",\n // width: 150,\n // });\n\n tempsTabs.push({\n label: "底盘号",\n prop: "vin",\n width: 180\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 120\n });\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "扫描点",\n prop: "scanPoint",\n width: 150\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "车型名称",\n prop: "",\n width: 150\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "单据描述",\n prop: "billDescription",\n width: 150\n });\n tempsTabs.push({\n label: "备注",\n prop: "description",\n width: 120\n }); // tempsTabs.push({\n // label: "版本",\n // prop: "version",\n // width: 150,\n // });\n\n tempsTabs.push({\n label: "客户零件数量",\n prop: "partNum",\n width: 135\n });\n return tempsTabs;\n }\n },\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true;\n var parentId = param.id; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n handleUpdateAll: function handleUpdateAll() {\n var _this2 = this;\n\n var params = {\n isSelectAll: true,\n unknownAssemblyIdList: []\n };\n this.$confirm("是否要全部进行解析?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this2.button2Loading = true;\n\n _this2.$axios.posts("/api/newjit/unknown-assembly/to-parse", params).then(function (response) {\n if (response.status == true) {\n _this2.$notify({\n title: "成功",\n message: "操作成功!",\n type: "success",\n duration: 2000\n });\n\n _this2.button2Loading = false;\n\n _this2.getList();\n } else {\n _this2.button2Loading = false;\n\n _this2.$message({\n type: "warning",\n message: response.message\n });\n }\n }).catch(function () {\n _this2.button2Loading = false;\n\n _this2.$message({\n type: "warning",\n message: response.message\n });\n });\n });\n },\n\n /** 重新计算总成 */\n handleUpdate: function handleUpdate(row) {\n var _this3 = this;\n\n if (this.multipleSelection.length == 0) {\n this.$message({\n message: "至少选择一行",\n type: "warning"\n });\n return;\n } else {\n this.buttonLoading = true; //批量操作\n\n var params = {\n isSelectAll: false,\n unknownAssemblyIdList: []\n };\n\n if (row) {\n //单行\n params.unknownAssemblyIdList.push(row.id);\n } else {\n //多选\n this.multipleSelection.forEach(function (element) {\n var id = element.id;\n params.unknownAssemblyIdList.push(id);\n });\n }\n\n console.log("未知总成详表条件:" + JSON.stringify(params));\n this.$axios.posts("/api/newjit/unknown-assembly/to-parse", params).then(function (response) {\n if (response.status == true) {\n _this3.$notify({\n title: "成功",\n message: "操作成功!",\n type: "success",\n duration: 2000\n });\n\n _this3.buttonLoading = false;\n\n _this3.getList();\n } else {\n _this3.buttonLoading = false;\n\n _this3.$message({\n type: "warning",\n message: response.message\n });\n }\n }).catch(function () {\n _this3.buttonLoading = false;\n\n _this3.$message({\n type: "warning",\n message: response.message\n });\n });\n }\n },\n fetchData: function fetchData(id) {\n var _this4 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/unknown-assembly/" + id).then(function (response) {\n _this4.form = response.item;\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this5 = this;\n\n this.listLoading = true;\n this.$axios.posts("/api/newjit/unknown-assembly/export", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this5.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this5.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this5.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this5.listLoading = false;\n });\n });\n },\n\n /** 不重复导出功能 */\n handleDownloadNotRepeat: function handleDownloadNotRepeat() {\n var _this6 = this;\n\n this.listLoading = true;\n this.$axios.posts("/api/newjit/unknown-assembly/export-not-repeat", this.listQuery).then(function (res) {\n var filename = res.item;\n\n _this6.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this6.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this6.listLoading = false;\n });\n });\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.OnlineTimeValue = [];\n this.$refs[refName].resetFields();\n this.handleQuery();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1;\n this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /* 主页面添加总成按钮事件 */\n handleCreate: function handleCreate() {\n // this.$nextTick(() => {\n // this.$refs["formCount"].resetFields();\n // });\n if (this.multipleSelection.length !== 1) {\n this.$message({\n message: "必须选择一行",\n type: "warning"\n });\n return;\n } else {\n console.log(this.multipleSelection[0].id);\n console.log(this.multipleSelection[0].vin);\n this.formTitle = "添加总成";\n this.isEdit = false;\n this.form = {};\n this.leftRowTemp = [];\n this.rightRowTemp = [];\n this.assly = {};\n this.tempdetails = [];\n this.erpAssemblyCfgList = [];\n this.tempAssCfgList = [];\n this.asTemp = [];\n this.getUnknownAssemblyList();\n this.getZcCode();\n this.getvehicleModel();\n this.dialogFormVisible = true;\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this7 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.OnlineTimeValue != []) {\n this.listQuery.OnlineTimeBegin = this.OnlineTimeValue[0]; //this.OnlineTimeValue\n // ? this.OnlineTimeValue[0] || ""\n // : "";\n\n this.listQuery.OnlineTimeEnd = this.OnlineTimeValue[1]; //this.OnlineTimeValue\n // ? this.OnlineTimeValue[1] || ""\n // : "";\n }\n\n this.$axios.gets("/api/newjit/unknown-assembly/list", this.listQuery).then(function (response) {\n _this7.list = response.items;\n _this7.totalCount = response.totalCount;\n console.log("未知总成" + JSON.stringify(_this7.listQuery));\n setTimeout(function () {\n //大数据量加载时\n _this7.listLoading = false;\n }, 500);\n }).catch(function () {\n _this7.listLoading = false;\n });\n },\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n //this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n\n /* 获取车型数据源 */\n getCarModel: function getCarModel() {\n var _this8 = this;\n\n this.$axios.gets("/api/newjit/dic/list" + "?dicTypeName=车型").then(function (response) {\n console.log("this is response.items", response.item);\n _this8.carModels = response.item;\n setTimeout(function () {\n //大数据量加载时\n _this8.listLoading = false;\n }, 500);\n }).catch(function () {\n _this8.listLoading = false;\n }); //console.log("this is carModels",this.carModels);\n },\n\n /* 加号按钮添加事件 */\n addzc: function addzc() {\n //todo 添加总成左侧的 加号按钮 待做\n alert("1");\n },\n\n /* 减号按钮删除事件 */\n delzc: function delzc(index) {\n this.erpAssemblyCfgList.splice(index, 1);\n console.log(this.erpAssemblyCfgList);\n },\n\n /* 添加总成最终提交的数据事件*/\n save: function save() {\n var _this9 = this;\n\n //if(this.data2.length ===0){\n if (this.data2.length !== 0) {\n this.$message({\n message: "还有结算价代码尚未匹配",\n type: "error"\n });\n return;\n }\n\n this.formLoading = true;\n var lastSubmit = {\n billId: this.listUnknownAssemblyQuery.billId,\n scanPoint: "M100",\n erpAssemblyCfgList: []\n };\n lastSubmit.erpAssemblyCfgList = this.tempAssCfgList; //#region\n // var lastSubmitt = [];\n // console.log("flag")\n // this.tempAssCfgList.forEach(element => {\n // element.details.forEach(element1 => {\n // lastSubmitt.push({\n // erpAssemblyCode: element.erpAssemblyCode,\n // erpAssemblyName: element.erpAssemblyName,\n // isCover: false,\n // previousVersionId:"f7d45dba-3164-4a91-b477-3c568c81e6a0",\n // vehicleModel: element.vehicleModel,\n // details:{\n // partCode:element1.partCode,\n // partNum:element1.partNum,\n // description:element1.description,\n // isKey: true,\n // }\n // })\n // });\n // });\n // console.log("this is lastSubmitt:",lastSubmitt)\n // var lastSubmit = [];\n // lastSubmitt.forEach(element => {\n // lastSubmit.push({\n // billID:this.listUnknownAssemblyQuery.billId,\n // scanPoint: "M100",\n // erpAssemblyCfgList:[{\n // erpAssemblyCode: element.erpAssemblyCode,\n // erpAssemblyName: element.erpAssemblyName,\n // isCover: false,\n // previousVersionId: null,\n // vehicleModel: element.vehicleModel,\n // details:element.details\n // }]\n // })\n // });\n // console.log("this is lastSubmit:",lastSubmit)\n //#endregion\n\n this.$axios.posts("/api/newjit/unknown-assembly/add-assembly", lastSubmit).then(function (response) {\n if (response.status === true) {\n _this9.dialogFormVisible = false;\n _this9.leftRowTemp = [];\n _this9.rightRowTemp = [];\n _this9.tempAssCfgList = [];\n _this9.tempdetails = [];\n _this9.erpAssemblyCfgList = [];\n _this9.asTemp = [];\n\n _this9.$notify({\n title: "成功",\n message: "添加总成成功!",\n type: "success",\n duration: 2000\n });\n }\n }).catch(function () {//this.listLoading = false;\n }); // }\n // else{\n // alert("未知零件未分配完,请确认!")\n // }\n },\n\n /* 获取未知总成零件数据源 */\n getUnknownAssemblyList: function getUnknownAssemblyList() {\n var _this10 = this;\n\n this.listUnknownAssemblyQuery.billId = this.multipleSelection[0].id; //console.log(this.listUnknownAssemblyQuery);\n\n this.$axios.gets("/api/newjit/unknown-assembly/" + this.listUnknownAssemblyQuery.billId).then(function (response) {\n _this10.data2 = response.item.unknownAssemblyParts.filter(function (u) {\n return u.partType === "1" || u.partType === null;\n });\n setTimeout(function () {\n //大数据量加载时\n _this10.listLoading = false;\n }, 500);\n }).catch(function () {\n _this10.listLoading = false;\n });\n },\n\n /* 获取总成零件数据源*/\n getZcCode: function getZcCode() {\n var _this11 = this;\n\n this.zcCode = [];\n this.listUnknownAssemblyQuery.vin = this.multipleSelection[0].vin; //console.log(this.listUnknownAssemblyQuery.vin);\n\n this.$axios.gets("/api/newjit/unknown-assembly/get-erp-assembly-code" + "?vin=" + this.listUnknownAssemblyQuery.vin).then(function (response) {\n console.log(response.item);\n\n if (response.item.length !== 0) {\n console.log("has no ASSCode");\n } else {\n response.item.forEach(function (zccode) {\n _this11.erpAssemblyCfgList.push({\n erpAssemblyCode: zccode,\n erpAssemblyName: [],\n isCover: false,\n carModel: "",\n previousVersionId: null,\n details: [{\n partCode: "",\n partNum: 0,\n description: "",\n isKey: false\n }]\n });\n });\n }\n\n setTimeout(function () {\n //大数据量加载时\n _this11.listLoading = false;\n }, 500);\n });\n },\n\n /* 添加总成提交方法 */\n submitAssyForm: function submitAssyForm(formName) {\n var _this12 = this;\n\n this.$refs[formName].validate(function (valid) {\n if (valid) {\n if (_this12.assly.erpAssemblyCode !== "") {\n _this12.erpAssemblyCfgList.push({\n erpAssemblyCode: _this12.assly.erpAssemblyCode,\n erpAssemblyName: _this12.assly.erpAssemblyName,\n carModel: _this12.assly.carModel,\n isCover: false,\n previousVersionId: null,\n details: []\n });\n\n console.log(_this12.erpAssemblyCfgList);\n _this12.assly.erpAssemblyCode = "";\n _this12.assly.erpAssemblyName = "";\n _this12.assly.carModel = "";\n } else {\n alert("请先填写Erp总成信息!");\n }\n } else {\n console.log("error submit!!");\n return false;\n }\n });\n },\n btnleftclick: function btnleftclick() {\n var _this13 = this;\n\n if (this.asTemp.length === 0) {\n alert("请先选择总成编号!");\n } else {\n if (this.rightRowTemp.length === 0) {\n alert("请先选择需移动的零件");\n } else if (this.rightRowTemp.length === 1 && parseInt(this.rightRowTemp[0].partNum) !== 1) {\n this.numFormData.num = parseInt(this.rightRowTemp[0].partNum);\n this.dialogNumVisible = true;\n this.numTitle = "输入移动结算件数量";\n } else {\n console.log("R->F");\n this.rightRowTemp.forEach(function (item) {\n _this13.numFormData.num = item.partNum; //if(this.numFormData.num <= item.partNum && this.numFormData.num > 0){\n //数据插入最终缓存\n\n if (_this13.tempAssCfgList.length !== 0) {\n console.log("second");\n\n var rfMove = _this13.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this13.asTemp[0].erpAssemblyCode;\n });\n\n if (rfMove.length !== 0) {\n var sameDetail = rfMove[0].details.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (sameDetail.length !== 0) {\n sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(_this13.numFormData.num);\n } else {\n rfMove[0].details.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n });\n }\n } else {\n console.log("加进去了");\n\n _this13.tempAssCfgList.push({\n erpAssemblyCode: _this13.asTemp[0].erpAssemblyCode,\n erpAssemblyName: _this13.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: _this13.asTemp[0].previousVersionId,\n vehicleModel: _this13.asTemp[0].carModel,\n details: [{\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n } else {\n console.log("first");\n\n _this13.tempAssCfgList.push({\n erpAssemblyCode: _this13.asTemp[0].erpAssemblyCode,\n erpAssemblyName: _this13.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: _this13.asTemp[0].previousVersionId,\n details: [{\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: _this13.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n\n console.log("this is tempAssCfgList 最终数据", _this13.tempAssCfgList); //数据插入中间数据源\n\n var judge = _this13.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(_this13.numFormData.num);\n _this13.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = t;\n } else {\n _this13.tempdetails.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: parseInt(_this13.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 右侧数据移动 */\n\n\n var delid = _this13.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0];\n\n var n1 = parseInt(_this13.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n _this13.data2 = _this13.data2.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n _this13.rightRowTemp = [];\n } else {\n _this13.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = delid.partNum - _this13.numFormData.num;\n item.partNum = n2 - n1;\n }\n }); //}\n }\n }\n },\n btnrightclick: function btnrightclick() {\n var _this14 = this;\n\n if (this.asTemp.length === 0) {\n alert("请先选择总成编号!");\n } else {\n if (this.leftRowTemp.length === 0) {\n alert("请先选择需移动的零件");\n } else if (this.leftRowTemp.length === 1 && parseInt(this.leftRowTemp[0].partNum) !== 1) {\n this.numFormData.num = parseInt(this.leftRowTempnpm[0].partNum);\n this.dialogNumVisible = true;\n this.numTitle = "输入移动结算件数量";\n } else {\n console.log("F->R");\n this.leftRowTemp.forEach(function (item) {\n _this14.numFormData.num = item.partNum; //if(this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0){\n //数据插入最终缓存\n\n console.log("移除或删除");\n\n var frMove = _this14.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this14.asTemp[0].erpAssemblyCode;\n });\n\n var samedetail = frMove[0].details.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (samedetail.length !== 0) {\n if (parseInt(samedetail[0].partNum) === parseInt(_this14.numFormData.num)) {\n frMove[0].details = frMove[0].details.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n } else {\n samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(_this14.numFormData.num);\n }\n } else if (samedetail.length !== 0) {\n alert("没有数据!");\n }\n\n console.log("this is tempAssCfgList 最终数据", _this14.tempAssCfgList); //数据插入右侧数据源\n\n var judge = _this14.data2.filter(function (u) {\n return u.partCode === item.partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(_this14.numFormData.num);\n _this14.data2.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = t;\n } else {\n _this14.data2.push({\n description: item.description,\n isKey: false,\n partCode: item.partCode,\n partNum: parseInt(_this14.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 中间数据移动 */\n\n\n var delid = _this14.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0];\n\n console.log(_this14.tempdetails);\n var n1 = parseInt(_this14.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n _this14.tempdetails = _this14.tempdetails.filter(function (u) {\n return u.partCode !== item.partCode;\n });\n _this14.leftRowTemp = [];\n } else {\n _this14.tempdetails.filter(function (u) {\n return u.partCode === item.partCode;\n })[0].partNum = parseInt(delid.partNum) - parseInt(_this14.numFormData.num);\n item.partNum = n2 - n1;\n } //}\n\n });\n }\n }\n },\n\n /* 保存数量事件 */\n saveNum: function saveNum() {\n var _this15 = this;\n\n if (this.asTemp.length !== 0) {\n //判断中间选中移动还是右侧选中移动\n\n /* 左侧移动到右侧 */\n if (this.leftRowTemp.length !== 0) {\n console.log("F->R");\n\n if (this.numFormData.num <= this.leftRowTemp[0].partNum && this.numFormData.num > 0) {\n //数据插入最终缓存\n console.log("移除或删除");\n var frMove = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this15.asTemp[0].erpAssemblyCode;\n });\n var samedetail = frMove[0].details.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n });\n\n if (samedetail.length !== 0) {\n if (parseInt(samedetail[0].partNum) === parseInt(this.numFormData.num)) {\n frMove[0].details = frMove[0].details.filter(function (u) {\n return u.partCode !== _this15.leftRowTemp[0].partCode;\n });\n } else {\n samedetail[0].partNum = parseInt(samedetail[0].partNum) - parseInt(this.numFormData.num);\n }\n } else if (samedetail.length !== 0) {\n alert("没有数据!");\n }\n\n console.log("this is tempAssCfgList 最终数据", this.tempAssCfgList); //数据插入右侧数据源\n\n var judge = this.data2.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);\n this.data2.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0].partNum = t;\n } else {\n this.data2.push({\n description: this.leftRowTemp[0].description,\n isKey: false,\n partCode: this.leftRowTemp[0].partCode,\n partNum: parseInt(this.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 中间数据移动 */\n\n\n var delid = this.tempdetails.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0];\n var n1 = parseInt(this.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n this.tempdetails = this.tempdetails.filter(function (u) {\n return u.partCode !== _this15.leftRowTemp[0].partCode;\n });\n this.leftRowTemp = [];\n } else {\n this.tempdetails.filter(function (u) {\n return u.partCode === _this15.leftRowTemp[0].partCode;\n })[0].partNum = parseInt(delid.partNum) - parseInt(this.numFormData.num);\n this.leftRowTemp[0].partNum = n2 - n1;\n }\n } else if (this.numFormData.num == 0) {\n alert("输入数字不能为0!");\n } else {\n alert("输入不正确,请确认!");\n }\n } else if (this.rightRowTemp.length !== 0) {\n /* 右侧移动到左侧 */\n console.log("R->F");\n\n if (this.numFormData.num <= this.rightRowTemp[0].partNum && this.numFormData.num > 0) {\n //数据插入最终缓存\n if (this.tempAssCfgList.length !== 0) {\n console.log("second");\n var rfMove = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this15.asTemp[0].erpAssemblyCode;\n });\n\n if (rfMove.length !== 0) {\n var sameDetail = rfMove[0].details.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n });\n\n if (sameDetail.length !== 0) {\n sameDetail[0].partNum = parseInt(sameDetail[0].partNum) + parseInt(this.numFormData.num);\n } else {\n rfMove[0].details.push({\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n });\n }\n } else {\n console.log("加进去了");\n this.tempAssCfgList.push({\n erpAssemblyCode: this.asTemp[0].erpAssemblyCode,\n erpAssemblyName: this.asTemp[0].erpAssemblyName,\n vehicleModel: this.asTemp[0].carModel,\n isCover: false,\n previousVersionId: this.asTemp[0].previousVersionId,\n details: [{\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n } else {\n console.log("first");\n this.tempAssCfgList.push({\n erpAssemblyCode: this.asTemp[0].erpAssemblyCode,\n erpAssemblyName: this.asTemp[0].erpAssemblyName,\n isCover: false,\n previousVersionId: this.asTemp[0].previousVersionId,\n vehicleModel: this.asTemp[0].carModel,\n details: [{\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: this.numFormData.num //移动框输入的数量\n\n }]\n });\n }\n\n console.log("this is tempAssCfgList 最终数据", this.tempAssCfgList); //数据插入中间数据源\n\n var judge = this.tempdetails.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n });\n\n if (judge.length === 1) {\n var t = parseInt(judge[0].partNum) + parseInt(this.numFormData.num);\n this.tempdetails.filter(function (u) {\n return u.partCode === _this15.rightRowTemp[0].partCode;\n })[0].partNum = t;\n } else {\n this.tempdetails.push({\n description: this.rightRowTemp[0].description,\n isKey: false,\n partCode: this.rightRowTemp[0].partCode,\n partNum: parseInt(this.numFormData.num) //移动框输入的数量\n\n });\n }\n /* 右侧数据移动 */\n\n\n var delid = this.data2.filter(function (u) {\n return u.id === _this15.rightRowTemp[0].id;\n })[0];\n var n1 = parseInt(this.numFormData.num);\n var n2 = parseInt(delid.partNum);\n\n if (n1 === n2) {\n this.data2 = this.data2.filter(function (u) {\n return u.id !== _this15.rightRowTemp[0].id;\n });\n this.rightRowTemp = [];\n } else {\n this.data2.filter(function (u) {\n return u.id === _this15.rightRowTemp[0].id;\n })[0].partNum = delid.partNum - this.numFormData.num;\n this.rightRowTemp[0].partNum = n2 - n1;\n }\n } else if (this.numFormData.num == 0) {\n alert("输入数字不能为0!");\n } else {\n alert("输入不正确,请确认!");\n }\n }\n\n this.dialogNumVisible = false;\n } else {\n alert("请先选择总成编号!");\n }\n\n this.dialogNumVisible = false;\n },\n\n /* 总成编号选中事件 */\n rowClickass: function rowClickass(row) {\n var _this16 = this;\n\n this.asTemp = [];\n this.tempdetails = [];\n this.$refs.asTable.clearSelection();\n this.$refs.asTable.toggleRowSelection(row);\n this.asTemp.push(row);\n\n if (this.asTemp[0].details.length !== 0) {\n //选中插入中间数据源\n this.tempdetails.push({\n isKey: false,\n partCode: this.asTemp[0].details[0].partCode,\n partNum: this.asTemp[0].details[0].partNum,\n vehicleModel: this.asTemp[0].details[0].carModel\n });\n } //二次选中插入最终提交中的details\n\n\n var judgeSec = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this16.asTemp[0].erpAssemblyCode;\n });\n console.log("this is judgeSec:", judgeSec);\n\n if (judgeSec.length !== 0) {\n console.log("this is judgeSec[0].details:", judgeSec[0].details);\n judgeSec[0].details.forEach(function (element) {\n _this16.tempdetails.push(element);\n });\n }\n\n console.log("this is this.tempdetails", this.tempdetails);\n console.log("this is asTemp", this.asTemp);\n },\n\n /* 总成编号复选框单选事件 */\n selectAss: function selectAss(selection, row) {\n var _this17 = this;\n\n this.asTemp = []; //清空已选\n\n this.tempdetails = [];\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // 选择项大于1时\n\n if (selection.length > 1) {\n var del_row = selection.shift(); // console.log(\'把数组的第一个元素从其中删除后\', selection);\n\n this.$refs.asTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n }\n\n this.asTemp.push(selection[0]);\n console.log("当用户手动勾选数据行", this.asTemp);\n\n if (this.asTemp[0].details.length !== 0) {\n //选中插入中间数据源\n this.tempdetails.push({\n isKey: false,\n partCode: this.asTemp[0].details[0].partCode,\n partNum: this.asTemp[0].details[0].partNum,\n vehicleModel: this.asTemp[0].details[0].carModel\n });\n } //二次选中插入最终提交中的details\n\n\n var judgeSec = this.tempAssCfgList.filter(function (u) {\n return u.erpAssemblyCode === _this17.asTemp[0].erpAssemblyCode;\n });\n console.log("this is judgeSec:", judgeSec);\n\n if (judgeSec.length !== 0) {\n console.log("this is judgeSec[0].details:", judgeSec[0].details);\n judgeSec[0].details.forEach(function (element) {\n _this17.tempdetails.push(element);\n });\n }\n\n console.log("this is this.tempdetails", this.tempdetails);\n console.log("this is asTemp", this.asTemp);\n },\n\n /* 右侧数据选中事件 */\n rowClickRight: function rowClickRight(row) {\n this.rightRowTemp = [];\n this.$refs.rightTable.clearSelection();\n this.$refs.rightTable.toggleRowSelection(row);\n this.rightRowTemp.push(row);\n },\n\n /* 左侧数据选中事件 */\n rowClickLeft: function rowClickLeft(row) {\n this.leftRowTemp = [];\n this.$refs.leftTable.clearSelection();\n this.$refs.leftTable.toggleRowSelection(row);\n this.leftRowTemp.push(row);\n },\n\n /* 右侧复选框单选事件 */\n selectRight: function selectRight(selection, row) {\n var _this18 = this;\n\n this.rightRowTemp = []; //清空已选\n\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // 选择项大于1时\n // if (selection.length > 1) {\n // let del_row = selection.shift();\n // // console.log(\'把数组的第一个元素从其中删除后\', selection);\n // this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n // }\n\n selection.forEach(function (item) {\n _this18.rightRowTemp.push(item);\n });\n console.log("当用户手动勾选数据行", this.rightRowTemp);\n },\n\n /* 右侧复选框全选事件 */\n selectRightAll: function selectRightAll(selection) {\n var _this19 = this;\n\n this.rightRowTemp = []; //清空已选\n\n console.log("当用户手动勾选全选 Checkbox 时触发的事件", selection);\n selection.forEach(function (item) {\n _this19.rightRowTemp.push(item);\n });\n console.log("当用户手动勾选全选", this.rightRowTemp);\n },\n\n /* 左侧复选框单选事件 */\n selectLeft: function selectLeft(selection, row) {\n var _this20 = this;\n\n this.leftRowTemp = []; //清空已选\n\n console.log("当用户手动勾选数据行的 Checkbox 时触发的事件", selection, row); // // 选择项大于1时\n // if (selection.length > 1) {\n // let del_row = selection.shift();\n // // console.log(\'把数组的第一个元素从其中删除后\', selection);\n // this.$refs.rightTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)\n // }\n\n selection.forEach(function (item) {\n _this20.leftRowTemp.push(item);\n });\n console.log("当用户手动勾选数据行", this.leftRowTemp);\n },\n\n /* 左侧复选框全选事件 */\n selectLeftAll: function selectLeftAll(selection) {\n var _this21 = this;\n\n this.leftRowTemp = []; //清空已选\n\n console.log("当用户手动勾选全选 Checkbox 时触发的事件", selection);\n selection.forEach(function (item) {\n _this21.leftRowTemp.push(item);\n });\n console.log("当用户手动勾选全选", this.leftRowTemp);\n },\n getvehicleModel: function getvehicleModel() {\n var _this22 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this22.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n valueselectChange: function valueselectChange() {}\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_unknownAssemblyvue_type_script_lang_js_ = (unknownAssemblyvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue?vue&type=style&index=0&id=6bf68050&lang=scss&scoped=true&\nvar unknownAssemblyvue_type_style_index_0_id_6bf68050_lang_scss_scoped_true_ = __webpack_require__("5e2f");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/unknownAssembly/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar unknownAssembly_component = Object(componentNormalizer["a" /* default */])(\n basedate_unknownAssemblyvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "6bf68050",\n null\n \n)\n\n/* harmony default export */ var unknownAssembly = __webpack_exports__["default"] = (unknownAssembly_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/NjA3MCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzA0OTAiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvdW5rbm93bkFzc2VtYmx5L2RldGFpbC52dWU/NThhYyIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzc1MGMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS91bmtub3duQXNzZW1ibHkvZGV0YWlsLnZ1ZT80ZjgwIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/Y2M3NSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/MTIyMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/MDZhYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEJBQTBCLGFBQWEsMEJBQTBCLHdCQUF3QixpQkFBaUIsOEJBQThCLFlBQVksVUFBVSxnQkFBZ0IsNkJBQTZCLGdCQUFnQixhQUFhLDRFQUE0RSx5QkFBeUIscUNBQXFDLHFCQUFxQixPQUFPLGtDQUFrQyxpQkFBaUIsYUFBYSxnQkFBZ0IsUUFBUSwrQ0FBK0MsV0FBVyx5QkFBeUIsc0ZBQXNGLGFBQWEsRUFBRSxnQ0FBZ0MsUUFBUSx3REFBd0QseUNBQXlDLGtDQUFrQyx5QkFBeUIsT0FBTyw2QkFBNkIsaUJBQWlCLGFBQWEsZ0JBQWdCLFFBQVEsK0NBQStDLFdBQVcseUJB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ZW50IjpbInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNyLWJvZHktY29udGVudFwifSxbX2MoJ2Rpdicse3JlZjpcImJveFwifSxbX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcImNvbnRlbnQtaGVhZGVyXCJ9LFtfYygnZWwtZm9ybScse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnNob3dTZWFyY2gpLGV4cHJlc3Npb246XCJzaG93U2VhcmNoXCJ9XSxyZWY6XCJxdWVyeUZvcm1cIixhdHRyczp7XCJtb2RlbFwiOl92bS5saXN0UXVlcnksXCJpbmxpbmVcIjp0cnVlfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiS05SOlwiLFwicHJvcFwiOlwiS05SQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuS05SQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIktOUkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuS05SQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJLTlJFbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuS05SRW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJLTlJFbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5LTlJFbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLlupXnm5jlj7c6XCIsXCJwcm9wXCI6XCJWSU5CZWdpblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WSU5CZWdpbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVklOQmVnaW5cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WSU5CZWdpblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIi1cIixcInByb3BcIjpcIlZJTkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5WSU5FbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZJTkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZJTkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIui9puWei+S7o+eggVwiLFwicHJvcFwiOlwiVmVoaWNsZU1vZGVsQ29kZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0udmFsdWVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS52ZWhpY2xlTW9kZWxDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkudmVoaWNsZU1vZGVsQ29kZVwifX0sX3ZtLl9sKChfdm0udmVoaWNsZU1vZGVsTGlzdCksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5pZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0uZGljSXRlbU5hbWUsXCJ2YWx1ZVwiOml0ZW0uZGljSXRlbUNvZGV9fSl9KSwxKV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLniYjmnKxcIixcInByb3BcIjpcIlZlcnNpb25cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeeJiOacrFwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuVmVyc2lvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVmVyc2lvblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZlcnNpb25cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLkuIrnur/ml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzgwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwidHlwZVwiOlwiZGF0ZXRpbWVyYW5nZVwiLFwiZGVmYXVsdC10aW1lXCI6WycwMDowMDowMCcsICcyMzo1OTo1OSddLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KF92bS5PbmxpbmVUaW1lVmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uT25saW5lVGltZVZhbHVlPSQkdn0sZXhwcmVzc2lvbjpcIk9ubGluZVRpbWVWYWx1ZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcImxvYWRpbmdcIjpfdm0uYnV0dG9uTG9hZGluZ30sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlVXBkYXRlKCl9fX0sW192bS5fdihcIumHjeaWsOino+aekCjmibnph4/mk43kvZwpIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiYWRkQXNzeVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tcGx1c1wifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDcmVhdGV9fSxbX3ZtLl92KFwi5re75Yqg5oC75oiQIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaJq+aPj+eCuVwiLFwicHJvcFwiOlwiU2NhblBvaW50XCJ9fSxbX2MoJ2VsLXNlbGVjdCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyMDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCIsXCJjbGVhcmFibGVcIjpcIlwifSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuU2NhblBvaW50KSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJTY2FuUG9pbnRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5TY2FuUG9pbnRcIn19LF92bS5fbCgoX3ZtLlNjYW5Qb2ludExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLmlkfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1zZWFyY2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRmlsdGVyfX0sW192bS5fdihcIuaQnOe0olwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXJlZnJlc2hcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0ucmVzZXRRdWVyeSgncXVlcnlGb3JtJyl9fX0sW192bS5fdihcIumHjee9rlwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tbGVmdFwiOlwiMTVweFwifSxhdHRyczp7XCJ0eXBlXCI6XCJ3YXJuaW5nXCIsXCJwbGFpblwiOlwiXCIsXCJpY29uXCI6XCJlbC1pY29uLWRvd25sb2FkXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURvd25sb2FkKCl9fX0sW192bS5fdihcIuWvvOWHuihFeGNlbCkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCIxNXB4XCJ9LGF0dHJzOntcInR5cGVcIjpcIndhcm5pbmdcIixcInBsYWluXCI6XCJcIixcImljb25cIjpcImVsLWljb24tZG93bmxvYWRcIixcInNpemVcIjpcIm1pbmlcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlRG93bmxvYWROb3RSZXBlYXQoKX19fSxbX3ZtLl92KFwi5a+85Ye6KOS4jemHjeWkjSkgXCIpXSksX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJwbGFpblwiOlwiXCIsXCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJzdWNjZXNzXCIsXCJpY29uXCI6XCJlbC1pY29uLWNoZWNrXCIsXCJsb2FkaW5nXCI6X3ZtLmJ1dHRvbjJMb2FkaW5nfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVVcGRhdGVBbGwoKX19fSxbX3ZtLl92KFwi6YeN5paw6Kej5p6QKOaJp+ihjOWFqOmDqCkgXCIpXSldLDEpXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImwtdGFibGVcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIixcIm1hcmdpbi10b3BcIjpcIi0yNXB4XCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInNvcnQtY2hhbmdlXCI6X3ZtLnNvcnRDaGFuZ2UsXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSxcInJvdy1jbGlja1wiOl92bS5oYW5kbGVSb3dDbGlja319LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwic2VsZWN0aW9uXCIsXCJ3aWR0aFwiOlwiNDRweFwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3XCIsXCJwcm9wXCI6XCJob3N0U05cIixcInNvcnRhYmxlXCI6XCJcIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxMTBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cuaG9zdFNOKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJcIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMildLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInRhYmxlLWZvb3RlclwifSxbX2MoJ3BhZ2luYXRpb24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS50b3RhbENvdW50ID4gMCksZXhwcmVzc2lvbjpcInRvdGFsQ291bnQgPiAwXCJ9XSxhdHRyczp7XCJ0b3RhbFwiOl92bS50b3RhbENvdW50LFwicGFnZVwiOl92bS5wYWdlLFwibGltaXRcIjpfdm0ubGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50fSxvbjp7XCJ1cGRhdGU6cGFnZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnBhZ2U9JGV2ZW50fSxcInVwZGF0ZTpsaW1pdFwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS4kc2V0KF92bS5saXN0UXVlcnksIFwiTWF4UmVzdWx0Q291bnRcIiwgJGV2ZW50KX0sXCJwYWdpbmF0aW9uXCI6X3ZtLmdldExpc3R9fSksX2MoJ2VsLWRyYXdlcicse2F0dHJzOntcInRpdGxlXCI6XCLkv6Hmga/or6bnu4bpobVcIixcInNpemVcIjpcIjc1JVwiLFwiZGlyZWN0aW9uXCI6XCJydGxcIixcInZpc2libGVcIjpfdm0uZHJhd2VyLFwiYmVmb3JlLWNsb3NlXCI6X3ZtLmhhbmRsZURyYXdlckNsb3NlfSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRyYXdlcj0kZXZlbnR9fX0sW19jKCdkaXYnLFtfYygnRGV0YWlsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXRvcFwiOlwiLTM1cHhcIn0sYXR0cnM6e1wiY3VzdG9tZXJJbmZvc1wiOl92bS5jdXN0b21lckluZm9zfX0pXSwxKV0pXSwxKSxfYygnZWwtZGlhbG9nJyx7YXR0cnM6e1widmlzaWJsZVwiOl92bS5kaWFsb2dGb3JtVmlzaWJsZSxcImNsb3NlLW9uLWNsaWNrLW1vZGFsXCI6ZmFsc2UsXCJ0aXRsZVwiOl92bS5mb3JtVGl0bGUsXCJhcHBlbmQtdG8tYm9keVwiOlwiXCIsXCJ3aWR0aFwiOlwiMTAwMHB4XCJ9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nRm9ybVZpc2libGU9JGV2ZW50fX19LFtfYygnZGl2Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjk4MHB4XCIsXCJoZWlnaHRcIjpcIjYwMHB4XCJ9fSxbX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZGl2Jyx7c3RhdGljU3R5bGU6e1wiYm9yZGVyXCI6XCIxcHhcIixcIndpZHRoXCI6XCIyODBweFwifX0sW19jKCdlbC1yb3cnLFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJhcHBcIn0sW19jKCdlbC10YWJsZScse3JlZjpcImFzVGFibGVcIixzdGF0aWNTdHlsZTp7XCJtYXJnaW5cIjpcIjBweFwiLFwid2lkdGhcIjpcIjI4MHB4XCJ9LGF0dHJzOntcImJvcmRlclwiOlwiXCIsXCJoZWlnaHRcIjpcIjI2MHB4XCIsXCJkYXRhXCI6X3ZtLmVycEFzc2VtYmx5Q2ZnTGlzdCxcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInJvdy1jbGlja1wiOl92bS5yb3dDbGlja2FzcyxcInNlbGVjdFwiOl92bS5zZWxlY3RBc3N9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInR5cGVcIjpcInNlbGVjdGlvblwiLFwid2lkdGhcIjpcIjQwcHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZXJwQXNzZW1ibHlDb2RlXCIsXCJsYWJlbFwiOlwi5oC75oiQ57yW5Y+3XCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJ3aWR0aFwiOlwiMTc4cHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wiYWxpZ25cIjpcImNlbnRlclwiLFwid2lkdGhcIjpcIjYxcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJzaXplXCI6XCJtaW5pXCIsXCJhbGlnblwiOlwibGVmdFwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5kZWx6YyhzY29wZS4kaW5kZXgsIHNjb3BlLnJvdyl9fX0pXX19XSl9KV0sMSldLDEpXSksX2MoJ2VsLXJvdycsW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjgwcHhcIixcImJvcmRlclwiOlwiMXB4XCJ9fSxbX2MoJ2VsLWRpdmlkZXInLHthdHRyczp7XCJjb250ZW50LXBvc2l0aW9uXCI6XCJjZW50ZXJcIn19LFtfdm0uX3YoXCLmt7vliqBFcnDmgLvmiJBcIildKSxfYygnZWwtZm9ybScse3JlZjpcImFzc2x5XCIsc3RhdGljU3R5bGU6e1wiYm9yZGVyXCI6XCIxcHhcIn0sYXR0cnM6e1wibGFiZWwtcG9zaXRpb25cIjpfdm0ubGFiZWxQb3NpdGlvbixcImxhYmVsLXdpZHRoXCI6XCIxMDBweFwiLFwibW9kZWxcIjpfdm0uYXNzbHksXCJib3JkZXJcIjpcIlwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIixcIndpZHRoXCI6XCIyODBweFwifSxhdHRyczp7XCJsYWJlbFwiOlwiRXJw5oC75oiQ57yW56CBXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaVFcnDmgLvmiJDnvJbnoIFcIn0sbW9kZWw6e3ZhbHVlOihfdm0uYXNzbHkuZXJwQXNzZW1ibHlDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmFzc2x5LCBcImVycEFzc2VtYmx5Q29kZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuZXJwQXNzZW1ibHlDb2RlXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIixcIndpZHRoXCI6XCIyODBweFwifSxhdHRyczp7XCJsYWJlbFwiOlwiRXJw5oC75oiQ5ZCN56ewXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fovpPlhaVFcnDmgLvmiJDlkI3np7BcIn0sbW9kZWw6e3ZhbHVlOihfdm0uYXNzbHkuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmFzc2x5LCBcImVycEFzc2VtYmx5TmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuZXJwQXNzZW1ibHlOYW1lXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjQwcHhcIn0sYXR0cnM6e1wibGFiZWxcIjpcIui9puWei1wifX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqei9puWei1wifSxtb2RlbDp7dmFsdWU6KF92bS5hc3NseS5jYXJNb2RlbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5hc3NseSwgXCJjYXJNb2RlbFwiLCAkJHYpfSxleHByZXNzaW9uOlwiYXNzbHkuY2FyTW9kZWxcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5zdWJtaXRBc3N5Rm9ybSgnYXNzbHknKX19fSxbX3ZtLl92KFwi5re75YqgXCIpXSldLDEpXSwxKV0sMSldKV0sMSldKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjd9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4XCIsXCJoZWlnaHRcIjpcIjU3MHB4XCIsXCJ3aWR0aFwiOlwiMjcwcHhcIn19LFtfYygnZWwtdGFibGUnLHtyZWY6XCJsZWZ0VGFibGVcIixhdHRyczp7XCJkYXRhXCI6X3ZtLnRlbXBkZXRhaWxzLFwiaGVpZ2h0XCI6XCI1NTBcIixcInN0cmlwZVwiOlwiXCIsXCJib3JkZXJcIjpcIlwiLFwiaGlnaGxpZ2h0LWN1cnJlbnQtcm93XCI6XCJcIn0sb246e1wicm93LWNsaWNrXCI6X3ZtLnJvd0NsaWNrTGVmdCxcInNlbGVjdFwiOl92bS5zZWxlY3RMZWZ0LFwic2VsZWN0LWFsbFwiOl92bS5zZWxlY3RMZWZ0QWxsfX0sW19jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJ0eXBlXCI6XCJzZWxlY3Rpb25cIixcIndpZHRoXCI6XCI0MHB4XCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi57uT566X5Lu25Luj56CBXCIsXCJ3aWR0aFwiOlwiMTUwcHhcIixcImFsaWduXCI6XCJjZW50ZXJcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwicGFydE51bVwiLFwibGFiZWxcIjpcIuaVsOmHj1wiLFwid2lkdGhcIjpcIjc4cHhcIixcImFsaWduXCI6XCJjZW50ZXJcIn19KV0sMSldLDEpXSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoyfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjU3MHB4XCIsXCJ3aWR0aFwiOlwiNzBweFwifSxhdHRyczp7XCJhbGlnblwiOlwiY2VudGVyXCJ9fSxbX2MoJ2VsLXJvdycse3N0YXRpY1N0eWxlOntcImxpbmUtaGVpZ2h0XCI6XCIzMDBweFwifX0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLWNhcmV0LWxlZnRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uYnRubGVmdGNsaWNrKCl9fX0pXSwxKSxfYygnZWwtcm93JyxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tY2FyZXQtcmlnaHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uYnRucmlnaHRjbGljaygpfX19KV0sMSldLDEpXSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo3fX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJib3JkZXJcIjpcIjFweFwiLFwiaGVpZ2h0XCI6XCI1NzBweFwiLFwid2lkdGhcIjpcIjI3MHB4XCJ9fSxbX2MoJ2VsLXRhYmxlJyx7cmVmOlwicmlnaHRUYWJsZVwiLGF0dHJzOntcImRhdGFcIjpfdm0uZGF0YTIsXCJoZWlnaHRcIjpcIjU1MFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJyb3ctY2xpY2tcIjpfdm0ucm93Q2xpY2tSaWdodCxcInNlbGVjdFwiOl92bS5zZWxlY3RSaWdodCxcInNlbGVjdC1hbGxcIjpfdm0uc2VsZWN0UmlnaHRBbGx9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInR5cGVcIjpcInNlbGVjdGlvblwiLFwid2lkdGhcIjpcIjQwcHhcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwicGFydENvZGVcIixcImxhYmVsXCI6XCLnu5Pnrpfku7bku6PnoIFcIixcIndpZHRoXCI6XCIxNTBweFwiLFwiYWxpZ25cIjpcImNlbnRlclwifX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJwYXJ0TnVtXCIsXCJsYWJlbFwiOlwi5pWw6YePXCIsXCJ3aWR0aFwiOlwiNzhweFwiLFwiYWxpZ25cIjpcImNlbnRlclwifX0pXSwxKV0sMSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGlhbG9nLWZvb3RlclwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI5NTBweFwifSxhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIixcImFsaWduXCI6XCJyaWdodFwifSxzbG90OlwiZm9vdGVyXCJ9LFtfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1wibG9hZGluZ1wiOl92bS5mb3JtTG9hZGluZyxcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uc2F2ZX19LFtfdm0uX3YoXCLnoa7orqRcIildKV0sMSldLDEpXSksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nTnVtVmlzaWJsZSxcImNsb3NlLW9uLWNsaWNrLW1vZGFsXCI6ZmFsc2UsXCJ0aXRsZVwiOl92bS5udW1UaXRsZSxcImFwcGVuZC10by1ib2R5XCI6XCJcIixcIndpZHRoXCI6XCI1NzBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ051bVZpc2libGU9JGV2ZW50fX19LFtfYygnZGl2JyxbX2MoJ2VsLWZvcm0nLHtyZWY6XCJudW1Gb3JtRGF0YVwiLHN0YXRpY0NsYXNzOlwibnVtLXJ1bGVGb3JtXCIsYXR0cnM6e1wibW9kZWxcIjpfdm0ubnVtRm9ybURhdGEsXCJsYWJlbC13aWR0aFwiOlwiMTAwcHhcIn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuaVsOmHj1wiLFwicHJvcFwiOlwibnVtXCIsXCJydWxlc1wiOlt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5pWw6YeP5LiN6IO95Li656m65LiU6Iez5bCR5Li6MScgfV19fSxbX2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxtb2RlbDp7dmFsdWU6KF92bS5udW1Gb3JtRGF0YS5udW0pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubnVtRm9ybURhdGEsIFwibnVtXCIsICQkdil9LGV4cHJlc3Npb246XCJudW1Gb3JtRGF0YS5udW1cIn19KV0sMSldLDEpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJsb2FkaW5nXCI6X3ZtLmZvcm1Mb2FkaW5nLFwidHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5zYXZlTnVtKCl9fX0sW192bS5fdihcIuehruiupFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlfX19LFtfdm0uX3YoXCLlj5bmtohcIildKV0sMSldKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdkaXYnLFtfYygndGFibGUnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiOTklXCJ9fSxbX2MoJ3RyJyxbX2MoJ3RkJyxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bku6PnoIFcIixcInByb3BcIjpcInBhcnRDb2RlIFwiLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwid2lkdGhcIjpcIjIyMHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnc3BhbicsW192bS5fdihfdm0uX3Moc2NvcGUucm93LnBhcnRDb2RlKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMildLDEpXSldKSxfYygndHInLHtzdGF0aWNTdHlsZTp7XCJoZWlnaHRcIjpcIjIwcHhcIn19LFtfYygndGQnLFtfYygnZGl2Jyx7YXR0cnM6e1wiYWxpZ25cIjpcImNlbnRlclwifX0sW192bS5fdihcIuWFsVwiK192bS5fcyhfdm0ucGFnZWNvdW50KStcIuadoeaVsOaNrlwiKV0pXSldKV0pXSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjwhLS3mnKrnn6XmgLvmiJAt5piO57uG5pWw5o2uLS0+XHJcbjx0ZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDk5JVwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNyLWJvZHktY29udGVudFwiPlxyXG4gICAgICAgICAgICA8IS0t6KGo5qC85riy5p+TLS0+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgIHJlZj1cIm11bHRpcGxlVGFibGVcIlxyXG4gICAgICAgICAgICAgIHYtbG9hZGluZz1cImxpc3RMb2FkaW5nXCJcclxuICAgICAgICAgICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgICAgICAgICAgZWxlbWVudC1sb2FkaW5nLXNwaW5uZXI9XCJlbC1pY29uLWxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3ItdGFibGVcIlxyXG4gICAgICAgICAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgICAgICAgICAgOmhlaWdodD1cInRhYmxlSGVpZ2h0XCJcclxuICAgICAgICAgICAgICA6Y2VsbC1zdHlsZT1cImNlbGxTdHlsZVwiXHJcbiAgICAgICAgICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgc3RyaXBlXHJcbiAgICAgICAgICAgICAgYm9yZGVyXHJcbiAgICAgICAgICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwJVwiXHJcbiAgICAgICAgICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgICAgICAgICAgQHNlbGVjdGlvbi1jaGFuZ2U9XCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJoYW5kbGVSb3dDbGlja1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8IS0tIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiXHJcbiAgICAgICAgICAgICAgICBwcm9wPVwicGFydENvZGUgXCJcclxuICAgICAgICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjIwcHhcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2NvcGUucm93LnBhcnRDb2RlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gZ2V0RGVmYXVsdEZpZWxkXCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICA6cHJvcD1cIml0ZW0ucHJvcFwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmxhYmVsXCJcclxuICAgICAgICAgICAgICAgIDptaW4td2lkdGg9XCJpdGVtLndpZHRoXCJcclxuICAgICAgICAgICAgICAgIDpmb3JtYXR0ZXI9XCJmaWVsZEZvcm1hdHRlclwiXHJcbiAgICAgICAgICAgICAgICBzb3J0YWJsZT1cImN1c3RvbVwiXHJcbiAgICAgICAgICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICAgICAgICAgIDpndXR0ZXI9XCIwXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBzY29wZS5jb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG5cclxuICAgICAgPHRyIHN0eWxlPVwiaGVpZ2h0OiAyMHB4XCI+XHJcbiAgICAgICAgPHRkPlxyXG4gICAgICAgICAgPGRpdiBhbGlnbj1cImNlbnRlclwiPuWFsXt7IHBhZ2Vjb3VudCB9feadoeaVsOaNrjwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7IC8vIHNlY29uZGFyeSBwYWNrYWdlIGJhc2VkIG9uIGVsLXBhZ2luYXRpb25cclxuaW1wb3J0IHBlcm1pc3Npb24gZnJvbSBcIkAvZGlyZWN0aXZlL3Blcm1pc3Npb24vaW5kZXguanNcIjtcclxuaW1wb3J0IENSTVRhYmxlSGVhZCBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9DUk1UYWJsZUhlYWRcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWxcIjtcclxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcInJ1bmpzL2xpYi9jb21tb25cIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcInNlbmRVbnNldHRsZWREaWZmUmVwb3J0XCIsXHJcbiAgY29tcG9uZW50czogeyBQYWdpbmF0aW9uLCBDUk1UYWJsZUhlYWQsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIHBhZ2Vjb3VudDogMCxcclxuICBwcm9wczoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JtVHlwZTogXCJzdG9ja0Zpc0RpZmZSZXBvcnRcIixcclxuICAgICAgcnVsZXM6IHtcclxuICAgICAgICAvL+WJjeerr+WumuS5ieeahOinhOWIme+8jOWQjuerr+S5n+aciemqjOivgVxyXG4gICAgICAgIGVycE1hdGVyaWFsQ29kZTogW1xyXG4gICAgICAgICAgeyByZXF1aXJlZDogdHJ1ZSwgbWVzc2FnZTogXCLlv4XpobvovpPlhaXvvIFcIiwgdHJpZ2dlcjogXCJibHVyXCIgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICBzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgcGFyZW50SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGZvcm06IHtcclxuICAgICAgICBkaWNEZXRhaWxJRDogXCJcIixcclxuICAgICAgICBjdXN0b21lcklkOiBcIlwiLFxyXG4gICAgICAgIHByb2plY3RJZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgbGlzdDogbnVsbCxcclxuICAgICAgdG90YWxDb3VudDogMCxcclxuICAgICAgbGlzdExvYWRpbmc6IHRydWUsXHJcbiAgICAgIGZvcm1Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgLy8g6auY57qn5pCc57SiXHJcbiAgICAgIGZpbHRlck9iajoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbGlzdFF1ZXJ5OiB7XHJcbiAgICAgICAgRmlsdGVyczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgICAgY29sdW1uOiBcIkVuYWJsZWRcIixcclxuICAgICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgICB2YWx1ZTogXCJ0cnVlXCIsXHJcbiAgICAgICAgICB9LCAvL+m7mOiupOafpeivouWPr+eUqOeahFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBpZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBtdWx0aXBsZVNlbGVjdGlvbjogW10sXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgZHJhd2VyOiBmYWxzZSxcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgdGFibGVIZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMCAtIDUwLFxyXG4gICAgICBpc0VkaXQ6IGZhbHNlLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgIGxldCBib3hIID0gdGhpcy4kcmVmcy5ib3gub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDY3IC0gNzkgLSA1MDsgLy81N+S4umZvb3RlcumrmOW6pu+8jDc55Li66aG16Z2i5LiK6YOo5qCH562+6auY5bqmXHJcbiAgICAgIC8vdGhpcy50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtMjYwXHJcbiAgICB9KTtcclxuXHJcbiAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBzZWxmLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gMzAgLSA1MDtcclxuICAgIH07XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgY3VzdG9tZXJJbmZvczoge1xyXG4gICAgICBoYW5kbGVyKG5ld1ZhbCkge1xyXG4gICAgICAgIGlmIChuZXdWYWwgPT0gXCJcIiB8fCBuZXdWYWwgPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgLy9UT0RPXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG5ld1ZhbC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkID0gZWxlbWVudC5QYXJlbnRJZDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkICE9IFwiXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIC8qKiDliJfooajlrZfmrrUgKi9cclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICAvL3RlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25Luj56CBXCIsIHByb3A6IFwicGFydENvZGUgXCIsIHdpZHRoOiAxMjAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogOTUgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5o+P6L+wXCIsIHByb3A6IFwiZGVzY3JpcHRpb25cIiwgd2lkdGg6IDI4MCB9KTtcclxuICAgICAgcmV0dXJuIHRlbXBzVGFicztcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Yi35paw5YiX6KGoICovXHJcbiAgICBoYW5kbGVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlICE9PSBcImVkaXRcIikge1xyXG4gICAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgLy8gZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgIC8vICAgcmV0dXJuIHJvd1tjb2x1bW4ucHJvcGVydHldIHx8IFwiLS1cIjtcclxuICAgIC8vIH0sXHJcbiAgICBpbXBvcnRFeGNlbERhdGEoKSB7XHJcbiAgICAgIC8v5YWz6Zet5a+85YWl56qX5L2T5pe26LCD55SoXHJcbiAgICAgIHRoaXMuc2hvd0V4Y2VsSW1wb3J0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIGdldExpc3QoKSB7XHJcbiAgICAgIHRoaXMubGlzdExvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuivpuihqOadoeS7tu+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQpKTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAuZ2V0cyhcIi9hcGkvbmV3aml0L3Vua25vd24tYXNzZW1ibHkvXCIgKyB0aGlzLmN1c3RvbWVySW5mby5wYXJlbnRJZClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHM7XHJcbiAgICAgICAgICB0aGlzLnBhZ2Vjb3VudCA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHMubGVuZ3RoO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhcInBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudHBhZ2Vjb3VudO+8mlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5wYWdlY291bnQpKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog562b6YCJ5pON5L2cICovXHJcbiAgICBoYW5kbGVGaWx0ZXIoKSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5GaWx0ZXJzID0gW107XHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaENvbnRlbnQgIT0gXCJcIikge1xyXG4gICAgICAgIHZhciBjb2x1bW4gPSBcInBhcnRDb2RlXCI7XHJcbiAgICAgICAgbGV0IGZpbHRlciA9IHtcclxuICAgICAgICAgIGxvZ2ljOiAwLFxyXG4gICAgICAgICAgY29sdW1uOiBjb2x1bW4sXHJcbiAgICAgICAgICBhY3Rpb246IDYsXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy5zZWFyY2hDb250ZW50LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgcmVzZXRRdWVyeSgpIHt9LFxyXG5cclxuICAgIHNvcnRDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBjb25zdCB7IHByb3AsIG9yZGVyIH0gPSBkYXRhO1xyXG4gICAgICBpZiAoIXByb3AgfHwgIW9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5saXN0UXVlcnkuU29ydGluZyA9IHByb3AgKyBcIiBcIiArIG9yZGVyO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi2c3R5bGUgKi9cclxuICAgIGNlbGxTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICAvL3RoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCI+XHJcbi5lbC10YWJsZSAuY2VsbC5lbC10b29sdGlwIHtcclxuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XHJcbn1cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTkzZTRjNjYmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NTkzZTRjNjYmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI1OTNlNGM2NlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3mnKrnn6XmgLvmiJDnrqHnkIbpobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICAgIDxmbGV4Ym94IGNsYXNzPVwiY29udGVudC1oZWFkZXJcIj5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgOm1vZGVsPVwibGlzdFF1ZXJ5XCJcclxuICAgICAgICAgIHJlZj1cInF1ZXJ5Rm9ybVwiXHJcbiAgICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICAgIDppbmxpbmU9XCJ0cnVlXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiS05SOlwiIHByb3A9XCJLTlJCZWdpblwiPlxyXG4gICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LktOUkJlZ2luXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIi1cIiBwcm9wPVwiS05SRW5kXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuS05SRW5kXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLlupXnm5jlj7c6XCIgcHJvcD1cIlZJTkJlZ2luXCI+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiLVwiIHByb3A9XCJWSU5FbmRcIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WSU5FbmRcIlxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWei+S7o+eggVwiIHByb3A9XCJWZWhpY2xlTW9kZWxDb2RlXCI+XHJcbiAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnZlaGljbGVNb2RlbENvZGVcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgICAgQGNoYW5nZT1cInZhbHVlc2VsZWN0Q2hhbmdlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiB2ZWhpY2xlTW9kZWxMaXN0XCJcclxuICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uZGljSXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5kaWNJdGVtQ29kZVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi54mI5pysXCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeeJiOacrFwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ9cIj5cclxuICAgICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cIk9ubGluZVRpbWVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzODBweFwiXHJcbiAgICAgICAgICAgICAgdmFsdWUtZm9ybWF0PVwieXl5eS1NTS1kZCBISDptbTpzc1wiXHJcbiAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIlxyXG4gICAgICAgICAgICAgIDpkZWZhdWx0LXRpbWU9XCJbJzAwOjAwOjAwJywgJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgIHN0YXJ0LXBsYWNlaG9sZGVyPVwi5byA5aeL5pel5pyfXCJcclxuICAgICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgICA+PC9lbC1kYXRlLXBpY2tlcj5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLXBsdXNcIlxyXG4gICAgICAgICAgICAgIDpsb2FkaW5nPVwiYnV0dG9uTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlVXBkYXRlKClcIlxyXG4gICAgICAgICAgICAgID7ph43mlrDop6PmnpAo5om56YeP5pON5L2cKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImFkZEFzc3lcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tcGx1c1wiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ3JlYXRlXCJcclxuICAgICAgICAgICAgICA+5re75Yqg5oC75oiQXHJcbiAgICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuaJq+aPj+eCuVwiIHByb3A9XCJTY2FuUG9pbnRcIj5cclxuICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuU2NhblBvaW50XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjAwcHhcIlxyXG4gICAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIFNjYW5Qb2ludExpc3RcIlxyXG4gICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uaWRcIlxyXG4gICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tc2VhcmNoXCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICAgICAgICA+5pCc57SiPC9lbC1idXR0b25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tcmVmcmVzaFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCJcclxuICAgICAgICAgICAgICA+6YeN572uPC9lbC1idXR0b25cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cIndhcm5pbmdcIlxyXG4gICAgICAgICAgICAgIHBsYWluXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxNXB4XCJcclxuICAgICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICAgICAgICA+5a+85Ye6KEV4Y2VsKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgcGxhaW5cclxuICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1kb3dubG9hZFwiXHJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDE1cHhcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZURvd25sb2FkTm90UmVwZWF0KClcIlxyXG4gICAgICAgICAgICAgID7lr7zlh7oo5LiN6YeN5aSNKVxyXG4gICAgICAgICAgICA8L2VsLWJ1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgICBwbGFpblxyXG4gICAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXHJcbiAgICAgICAgICAgICAgaWNvbj1cImVsLWljb24tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIDpsb2FkaW5nPVwiYnV0dG9uMkxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVVwZGF0ZUFsbCgpXCJcclxuICAgICAgICAgICAgICA+6YeN5paw6Kej5p6QKOaJp+ihjOWFqOmDqClcclxuICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgIDwvZmxleGJveD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImwtdGFibGVcIj5cclxuICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICA8ZWwtdGFibGVcclxuICAgICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICA6ZGF0YT1cImxpc3RcIlxyXG4gICAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgICAgOmNlbGwtc3R5bGU9XCJjZWxsU3R5bGVcIlxyXG4gICAgICAgIDpoZWFkZXItY2VsbC1zdHlsZT1cImhlYWRlclJvd1N0eWxlXCJcclxuICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgIHN0cmlwZVxyXG4gICAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7IG1hcmdpbi10b3A6IC0yNXB4XCJcclxuICAgICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgICBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3XCJcclxuICAgICAgICAgIHByb3A9XCJob3N0U05cIlxyXG4gICAgICAgICAgc29ydGFibGVcclxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgIHdpZHRoPVwiMTEwcHhcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaW5rLXR5cGVcIiBAY2xpY2s9XCJoYW5kbGVEcmF3ZXJPcGVuKHNjb3BlLnJvdylcIj57e1xyXG4gICAgICAgICAgICAgIHNjb3BlLnJvdy5ob3N0U05cclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgIDpwcm9wPVwiaXRlbS5wcm9wXCJcclxuICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgOm1pbi13aWR0aD1cIml0ZW0ud2lkdGhcIlxyXG4gICAgICAgICAgOmZvcm1hdHRlcj1cImZpZWxkRm9ybWF0dGVyXCJcclxuICAgICAgICAgIHNvcnRhYmxlXHJcbiAgICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICAgIDpndXR0ZXI9XCIwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICB7eyBzY29wZS5jb2x1bW4ubGFiZWwgfX1cclxuICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIGxhYmVsPVwi5pON5L2cXCIgYWxpZ249XCJjZW50ZXJcIiB3aWR0aD1cIjEyOHB4XCI+XHJcbiAgICAgICAgICA8dGVtcGxhdGUgc2xvdC1zY29wZT1cInsgcm93IH1cIj5cclxuICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlVXBkYXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgIGljb249XCJlbC1pY29uLWVkaXRcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDwvZWwtdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICAgIDwhLS0g5YiG6aG15o6n5Lu2IHN0eWxlPVwibWFyZ2luLXRvcDogLTI1cHg7bWFyZ2luLWJvdHRvbTotMjVweDtmbG9hdDpyaWdodDtcIi0tPlxyXG4gICAgICA8cGFnaW5hdGlvblxyXG4gICAgICAgIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCJcclxuICAgICAgICA6dG90YWw9XCJ0b3RhbENvdW50XCJcclxuICAgICAgICA6cGFnZS5zeW5jPVwicGFnZVwiXHJcbiAgICAgICAgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkuTWF4UmVzdWx0Q291bnRcIlxyXG4gICAgICAgIEBwYWdpbmF0aW9uPVwiZ2V0TGlzdFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgICA8ZWwtZHJhd2VyXHJcbiAgICAgICAgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIlxyXG4gICAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICAgIGRpcmVjdGlvbj1cInJ0bFwiXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRyYXdlclwiXHJcbiAgICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICAgIHYtYmluZDpjdXN0b21lckluZm9zPVwiY3VzdG9tZXJJbmZvc1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogLTM1cHhcIlxyXG4gICAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2VsLWRyYXdlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS3mt7vliqDmgLvmiJAtLT5cclxuICAgIDxlbC1kaWFsb2dcclxuICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ0Zvcm1WaXNpYmxlXCJcclxuICAgICAgOmNsb3NlLW9uLWNsaWNrLW1vZGFsPVwiZmFsc2VcIlxyXG4gICAgICA6dGl0bGU9XCJmb3JtVGl0bGVcIlxyXG4gICAgICBhcHBlbmQtdG8tYm9keVxyXG4gICAgICB3aWR0aD1cIjEwMDBweFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogOTgwcHg7IGhlaWdodDogNjAwcHhcIj5cclxuICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImJvcmRlcjogMXB4OyB3aWR0aDogMjgwcHhcIj5cclxuICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIGhhbmRsZUN1cnJlbnRDaGFuZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luOiAwcHg7IHdpZHRoOiAyODBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjYwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cImFzVGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpkYXRhPVwiZXJwQXNzZW1ibHlDZmdMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBAcm93LWNsaWNrPVwicm93Q2xpY2thc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgIEBzZWxlY3Q9XCJzZWxlY3RBc3NcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlbGVjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wPVwiZXJwQXNzZW1ibHlDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwi5oC75oiQ57yW5Y+3XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTc4cHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIOa3u+WKoOWIoOmZpOaMiemSriAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIGFsaWduPVwiY2VudGVyXCIgd2lkdGg9XCI2MXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIHR5cGU9XCJidXR0b25cIiA6cmVuZGVyLWhlYWRlcj1cInJlbmRlckhlYWRlclwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJhZGR6YyhzY29wZS4kaW5kZXgsc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLXBsdXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiZGVsemMoc2NvcGUuJGluZGV4LCBzY29wZS5yb3cpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1taW51c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduPVwibGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMjgwcHg7IGJvcmRlcjogMXB4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1kaXZpZGVyIGNvbnRlbnQtcG9zaXRpb249XCJjZW50ZXJcIj7mt7vliqBFcnDmgLvmiJA8L2VsLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXI6IDFweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmxhYmVsLXBvc2l0aW9uPVwibGFiZWxQb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwtd2lkdGg9XCIxMDBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOm1vZGVsPVwiYXNzbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cImFzc2x5XCJcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRXJw5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB3aWR0aDogMjgwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuZXJwQXNzZW1ibHlDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWlRXJw5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiRXJw5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiA0MHB4OyB3aWR0aDogMjgwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuZXJwQXNzZW1ibHlOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWlRXJw5oC75oiQ5ZCN56ewXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLovablnotcIiBzdHlsZT1cImhlaWdodDogNDBweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZWwtaW5wdXQgdi1tb2RlbD1cImFzc2x5LmNhck1vZGVsXCIgY2xlYXJhYmxlPjwvZWwtaW5wdXQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiYXNzbHkuY2FyTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6novablnotcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgQGNsaWNrPVwic3VibWl0QXNzeUZvcm0oJ2Fzc2x5JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+5re75YqgPC9lbC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9lbC1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiN1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHg7IGhlaWdodDogNTcwcHg7IHdpZHRoOiAyNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJ0ZW1wZGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICByZWY9XCJsZWZ0VGFibGVcIlxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0PVwiNTUwXCJcclxuICAgICAgICAgICAgICAgIHN0cmlwZVxyXG4gICAgICAgICAgICAgICAgYm9yZGVyXHJcbiAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJyb3dDbGlja0xlZnRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdD1cInNlbGVjdExlZnRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdC1hbGw9XCJzZWxlY3RMZWZ0QWxsXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjQwcHhcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICBwcm9wPVwicGFydENvZGVcIlxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD1cIue7k+eul+S7tuS7o+eggVwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTUwcHhcIlxyXG4gICAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uXHJcbiAgICAgICAgICAgICAgICAgIHByb3A9XCJwYXJ0TnVtXCJcclxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCLmlbDph49cIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjc4cHhcIlxyXG4gICAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPC9lbC10YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgIDwhLS0g5bem5Y+z56m/5qKt5oyJ6ZKuIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJoZWlnaHQ6IDU3MHB4OyB3aWR0aDogNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1yb3cgc3R5bGU9XCJsaW5lLWhlaWdodDogMzAwcHhcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiYnRubGVmdGNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1jYXJldC1sZWZ0XCJcclxuICAgICAgICAgICAgICAgID48L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBAY2xpY2s9XCJidG5yaWdodGNsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1jYXJldC1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICA+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiN1wiPlxyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYm9yZGVyOiAxcHg7IGhlaWdodDogNTcwcHg7IHdpZHRoOiAyNzBweFwiPlxyXG4gICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgOmRhdGE9XCJkYXRhMlwiXHJcbiAgICAgICAgICAgICAgICByZWY9XCJyaWdodFRhYmxlXCJcclxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjU1MFwiXHJcbiAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgIGJvcmRlclxyXG4gICAgICAgICAgICAgICAgaGlnaGxpZ2h0LWN1cnJlbnQtcm93XHJcbiAgICAgICAgICAgICAgICBAcm93LWNsaWNrPVwicm93Q2xpY2tSaWdodFwiXHJcbiAgICAgICAgICAgICAgICBAc2VsZWN0PVwic2VsZWN0UmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgQHNlbGVjdC1hbGw9XCJzZWxlY3RSaWdodEFsbFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwic2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI0MHB4XCJcclxuICAgICAgICAgICAgICAgID48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgICAgICAgICAgcHJvcD1cInBhcnRDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCLnu5Pnrpfku7bku6PnoIFcIlxyXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjE1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgICAgICBwcm9wPVwicGFydE51bVwiXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwi5pWw6YePXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3OHB4XCJcclxuICAgICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPjwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8IS0tIDxlbC10YWJsZS10cmFuc2ZlclxyXG4gICAgICAgICAgICAgICAgICAgIGxlZnRUaXRsZT1cIue7k+eul+S7tlwiXHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHRUaXRsZT1cIuacquefpeaAu+aIkFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmNvbHVtbnM9J2NvbHVtbnMnXHJcbiAgICAgICAgICAgICAgICAgICAgOmRhdGFMZWZ0PVwiZGF0YTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpkYXRhUmlnaHQ9XCJkYXRhMlwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtc2xvdDpkZWZhdWx0PVwie3Njb3BlfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2NvcGUucm93W3Njb3BlLmNvbC52YWx1ZV19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9lbC10YWJsZS10cmFuc2Zlcj4gLS0+XHJcbiAgICAgICAgICA8IS0tIOWPr+S7peS9v+eUqOaPkuanveiOt+WPluWIsOWIl+S/oeaBr+WSjOihjOS/oeaBr++8jOS7juiAjOi/m+ihjOaVsOaNrueahOWkhOeQhiAtLT5cclxuICAgICAgICAgIDwhLS0gPGVsLWNvbCA6c3Bhbj1cIjE3XCI+PC9lbC1jb2w+IC0tPlxyXG4gICAgICAgIDwvZWwtcm93PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBzbG90PVwiZm9vdGVyXCJcclxuICAgICAgICAgIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiXHJcbiAgICAgICAgICBhbGlnbj1cInJpZ2h0XCJcclxuICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDk1MHB4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uIDpsb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmVcIlxyXG4gICAgICAgICAgICA+56Gu6K6kPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2VsLWRpYWxvZz5cclxuXHJcbiAgICA8IS0tIOenu+WKqOaVsOmHj+eql+S9kyAtLT5cclxuICAgIDxlbC1kaWFsb2dcclxuICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ051bVZpc2libGVcIlxyXG4gICAgICA6Y2xvc2Utb24tY2xpY2stbW9kYWw9XCJmYWxzZVwiXHJcbiAgICAgIDp0aXRsZT1cIm51bVRpdGxlXCJcclxuICAgICAgYXBwZW5kLXRvLWJvZHlcclxuICAgICAgd2lkdGg9XCI1NzBweFwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGVsLWZvcm1cclxuICAgICAgICAgIDptb2RlbD1cIm51bUZvcm1EYXRhXCJcclxuICAgICAgICAgIHJlZj1cIm51bUZvcm1EYXRhXCJcclxuICAgICAgICAgIGxhYmVsLXdpZHRoPVwiMTAwcHhcIlxyXG4gICAgICAgICAgY2xhc3M9XCJudW0tcnVsZUZvcm1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW1cclxuICAgICAgICAgICAgbGFiZWw9XCLmlbDph49cIlxyXG4gICAgICAgICAgICBwcm9wPVwibnVtXCJcclxuICAgICAgICAgICAgOnJ1bGVzPVwiW3sgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfmlbDph4/kuI3og73kuLrnqbrkuJToh7PlsJHkuLoxJyB9XVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxlbC1pbnB1dCB0eXBlPVwidGV4dFwiIHYtbW9kZWw9XCJudW1Gb3JtRGF0YS5udW1cIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPC9lbC1mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBzbG90PVwiZm9vdGVyXCIgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiA6bG9hZGluZz1cImZvcm1Mb2FkaW5nXCIgdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJzYXZlTnVtKClcIlxyXG4gICAgICAgICAgPuehruiupDwvZWwtYnV0dG9uXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxlbC1idXR0b24gdHlwZT1cInRleHRcIiBAY2xpY2s9XCJkaWFsb2dOdW1WaXNpYmxlID0gZmFsc2VcIlxyXG4gICAgICAgICAgPuWPlua2iDwvZWwtYnV0dG9uXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZWwtZGlhbG9nPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbC52dWVcIjtcclxuaW1wb3J0IHsgZG93bmxvYWRGaWxlIH0gZnJvbSBcIkAvdXRpbHMvY3JtaW5kZXguanNcIjtcclxuXHJcbi8v57uE5Lu26K6h6YeP5Y2V5L2NXHJcbmNvbnN0IGJvbVVuaXQgPSBbXHJcbiAgeyBrZXk6IDAsIGRpc3BsYXlfbmFtZTogXCJQQ1wiIH0sXHJcbiAgeyBrZXk6IDEsIGRpc3BsYXlfbmFtZTogXCJUT05cIiB9LFxyXG4gIHsga2V5OiAyLCBkaXNwbGF5X25hbWU6IFwiT3RoZXJcIiB9LFxyXG5dO1xyXG5jb25zdCBwcm9qZWN0VHlwZUtleVZhbHVlID0gYm9tVW5pdC5yZWR1Y2UoKGFjYywgY3VyKSA9PiB7XHJcbiAgYWNjW2N1ci5rZXldID0gY3VyLmRpc3BsYXlfbmFtZTtcclxuICByZXR1cm4gYWNjO1xyXG59LCB7fSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbmFtZTogXCJVbmtub3duQXNzZW1ibHlcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgaW1wb3J0RXhjZWwsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICBjb25zdCB2YWxpZFZlcnNpb24gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG4gICAgICBpZiAoIW51bWJlclJlZy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIuWPquiDveS4ujbkvY3mlbDlrZfvvIFcIikpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcImJvbWRhdGFiYXNlXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHZhbHVlU2VsZWN0OiBcIlwiLFxyXG4gICAgICBPbmxpbmVUaW1lVmFsdWU6IFtdLCAvL+S4iue6v+aXtumXtFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgZGlhbG9nT3B0aW9uczogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgYXNUZW1wOiBbXSwgLy/mgLvmiJDnvJblj7fngrnlh7vnvJPlrZhcclxuICAgICAgcmlnaHRSb3dUZW1wOiBbXSwgLy/lj7Pkvqfnp7vliqjngrnlh7vnvJPlrZhcclxuICAgICAgbGVmdFJvd1RlbXA6IFtdLCAvL+W3puS+p+enu+WKqOeCueWHu+e8k+WtmFxyXG4gICAgICBzZWxlY3Rpb25lZDogXCJcIiwgLy/ljZXpgInkuK3nmoTlgLxcclxuICAgICAgY2FyTW9kZWxzOiBbXSwgLy/ovablnovkuIvmi4nmoYbmlbDmja7mupBcclxuICAgICAgY3VycmVudFJvdzogXCJcIixcclxuICAgICAgdmVyc2lvbkxpc3Q6IFtdLCAvL+eJiOacrOWIl+ihqFxyXG4gICAgICBzZWFyY2hDb250ZW50OiBcIlwiLCAvLyDovpPlhaXlhoXlrrlcclxuICAgICAgc2hvd0V4Y2VsSW1wb3J0OiBmYWxzZSxcclxuICAgICAgZm9ybToge30sXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBib21JZDogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgLy8g6auY57qn5pCc57SiXHJcbiAgICAgIGZpbHRlck9iajoge1xyXG4gICAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgICBkZWZhdWx0OiAoKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge307XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgbGlzdFF1ZXJ5OiB7XHJcbiAgICAgICAgU2tpcENvdW50OiAwLFxyXG4gICAgICAgIE1heFJlc3VsdENvdW50OiAxNSxcclxuICAgICAgICBPbmxpbmVUaW1lQmVnaW46IHVuZGVmaW5lZCxcclxuICAgICAgICBPbmxpbmVUaW1lRW5kOiB1bmRlZmluZWQsXHJcbiAgICAgICAgS05SOiB1bmRlZmluZWQsXHJcbiAgICAgICAgVklOOiB1bmRlZmluZWQsXHJcbiAgICAgICAgU2NhblBvaW50OiB1bmRlZmluZWQsXHJcbiAgICAgICAgQmlsbERlc2NyaXB0aW9uOiB1bmRlZmluZWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RVbmtub3duQXNzZW1ibHlRdWVyeToge1xyXG4gICAgICAgIGJpbGxJZDogXCJcIixcclxuICAgICAgICAvL2FwcGx5OlwiXCIsXHJcbiAgICAgICAgdmluOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBwYWdlOiAxLFxyXG4gICAgICAvLyDmmL7npLrmkJzntKLmnaHku7ZcclxuICAgICAgc2hvd1NlYXJjaDogdHJ1ZSxcclxuICAgICAgYm9tVW5pdCxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBkaWFsb2dGb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGRpYWxvZ051bVZpc2libGU6IGZhbHNlLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIG51bVRpdGxlOiBcIlwiLFxyXG4gICAgICBpc0VkaXQ6IGZhbHNlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIGJ1dHRvbkxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICBidXR0b24yTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLFxyXG4gICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDIyMCxcclxuICAgICAgLy9jb2x1bW5zOiBbXHJcbiAgICAgIC8vICAgICAgICAgIHtuYW1lOiAn57uT566X5Lu25Luj56CBJywgdmFsdWU6ICdwYXJ0Q29kZScsIHdpZHRoOiAnMTgwcHgnfSxcclxuICAgICAgLy8gICAgICAgICAge25hbWU6ICfmlbDph48nLCB2YWx1ZTogJ3BhcnROdW0nLH0sXHJcbiAgICAgIC8vICAgICAgXSxcclxuICAgICAgLy8gZGF0YTE6IFtcclxuICAgICAgLy8gXSxcclxuXHJcbiAgICAgIG51bUZvcm1EYXRhOiB7XHJcbiAgICAgICAgbnVtOiAxLFxyXG4gICAgICB9LFxyXG4gICAgICB6Y0NvZGU6IFtdLFxyXG4gICAgICAvKuacgOe7iOaPkOS6pOe8k+WtmCovXHJcbiAgICAgIHRlbXBBc3NDZmdMaXN0OiBbXSxcclxuICAgICAgLyrlj7PkvqfmlbDmja7mupAqL1xyXG4gICAgICBkYXRhMjogW10sXHJcbiAgICAgIC8q5Lit6Ze05pWw5o2u5rqQKi9cclxuICAgICAgdGVtcGRldGFpbHM6IFtcclxuICAgICAgICAvL3tcclxuICAgICAgICAvLyBwYXJ0Q29kZTogXCIxXCIsXHJcbiAgICAgICAgLy8gcGFydE51bTogMCxcclxuICAgICAgICAvLyBpc0tleTogdHJ1ZVxyXG4gICAgICAgIC8vfVxyXG4gICAgICBdLFxyXG4gICAgICAvKuW3puS+p+aAu+aIkOaVsOaNrua6kCovXHJcbiAgICAgIGVycEFzc2VtYmx5Q2ZnTGlzdDogW10sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBlcnBBc3NlbWJseUNvZGU6IFwic3RyaW5nXCIsXHJcbiAgICAgIC8vICAgZXJwQXNzZW1ibHlOYW1lOiBcInN0cmluZ1wiLFxyXG4gICAgICAvLyAgIGlzQ292ZXI6IHRydWUsXHJcbiAgICAgIC8vICAgY2FyTW9kZWw6IFwiXCIsXHJcbiAgICAgIC8vICAgcHJldmlvdXNWZXJzaW9uSWQ6IFwiM2ZhODVmNjQtNTcxNy00NTYyLWIzZmMtMmM5NjNmNjZhZmE2XCIsXHJcbiAgICAgIC8vICAgZGV0YWlsczogW1xyXG4gICAgICAvLyAgICAge1xyXG4gICAgICAvLyAgICAgICBwYXJ0Q29kZTogXCJzdHJpbmdcIixcclxuICAgICAgLy8gICAgICAgcGFydE51bTogMCxcclxuICAgICAgLy8gICAgICAgZGVzY3JpcHRpb246IFwic3RyaW5nXCIsXHJcbiAgICAgIC8vICAgICAgIGlzS2V5OiB0cnVlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgXVxyXG4gICAgICAvLyB9XHJcbiAgICAgIGxhYmVsUG9zaXRpb246IFwibGVmdFwiLFxyXG4gICAgICBhc3NseToge1xyXG4gICAgICAgIGVycEFzc2VtYmx5Q29kZTogXCJcIixcclxuICAgICAgICBlcnBBc3NlbWJseU5hbWU6IFwiXCIsXHJcbiAgICAgICAgY2FyTW9kZWw6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHZlaGljbGVNb2RlbFF1ZXJ5OiB7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6IFwi5rS+5qC86L2m5Z6LXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHZlaGljbGVNb2RlbExpc3Q6IFtdLCAvL+i9puWei2xpc3RcclxuICAgICAgU2NhblBvaW50TGlzdDogW1xyXG4gICAgICAgIHsgaWQ6IFwiMFwiLCBsYWJlbDogXCIgXCIgfSxcclxuICAgICAgICB7IGlkOiBcIlIxMDBcIiwgbGFiZWw6IFwiUjEwMFwiIH0sXHJcbiAgICAgICAgeyBpZDogXCJNMTAwXCIsIGxhYmVsOiBcIk0xMDBcIiB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAvL2NvbnNvbGUubG9nKG9mZnNldEhlaSk7XHJcbiAgICAgIGxldCBib3hIID0gdGhpcy4kcmVmcy5ib3gub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7IC8vNTfkuLpmb290ZXLpq5jluqbvvIw3OeS4uumhtemdouS4iumDqOagh+etvumrmOW6plxyXG4gICAgfSk7XHJcbiAgfSxcclxuICBjcmVhdGVkKCkge1xyXG4gICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHtcclxuICAgIGdldERlZmF1bHRGaWVsZCgpIHtcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICAvLyB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgIC8vICAgbGFiZWw6IFwi5aSn5LyX6aG65bqP5Y+3XCIsXHJcbiAgICAgIC8vICAgcHJvcDogXCJob3N0U05cIixcclxuICAgICAgLy8gICB3aWR0aDogMTUwLFxyXG4gICAgICAvLyB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIuW6leebmOWPt1wiLFxyXG4gICAgICAgIHByb3A6IFwidmluXCIsXHJcbiAgICAgICAgd2lkdGg6IDE4MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCJLTlJcIixcclxuICAgICAgICBwcm9wOiBcImtuclwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5LiK57q/5pe26Ze0XCIsXHJcbiAgICAgICAgcHJvcDogXCJvbmxpbmVUaW1lXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmiavmj4/ngrlcIixcclxuICAgICAgICBwcm9wOiBcInNjYW5Qb2ludFwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi6L2m5Z6L5Luj56CBXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsXHJcbiAgICAgICAgd2lkdGg6IDEyMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLovablnovlkI3np7BcIixcclxuICAgICAgICBwcm9wOiBcIlwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLljZXmja7mj4/ov7BcIixcclxuICAgICAgICBwcm9wOiBcImJpbGxEZXNjcmlwdGlvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5aSH5rOoXCIsXHJcbiAgICAgICAgcHJvcDogXCJkZXNjcmlwdGlvblwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgIC8vICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgIC8vICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE1MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHsgbGFiZWw6IFwi5a6i5oi36Zu25Lu25pWw6YePXCIsIHByb3A6IFwicGFydE51bVwiLCB3aWR0aDogMTM1IH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIG1ldGhvZHM6IHtcclxuICAgIC8v5oq95bGJXHJcbiAgICBoYW5kbGVEcmF3ZXJPcGVuKHBhcmFtKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyID0gdHJ1ZTtcclxuICAgICAgdmFyIHBhcmVudElkID0gcGFyYW0uaWQ7IC8v5Li76ZSuaWRcclxuICAgICAgdGhpcy5jdXN0b21lckluZm9zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZURyYXdlckNsb3NlKGRvbmUpIHtcclxuICAgICAgZG9uZSgpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVVwZGF0ZUFsbCgpIHtcclxuICAgICAgdmFyIHBhcmFtcyA9IHtcclxuICAgICAgICBpc1NlbGVjdEFsbDogdHJ1ZSxcclxuICAgICAgICB1bmtub3duQXNzZW1ibHlJZExpc3Q6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLiRjb25maXJtKFwi5piv5ZCm6KaB5YWo6YOo6L+b6KGM6Kej5p6QP1wiLCBcIuaPkOekulwiLCB7XHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5idXR0b24yTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgIC5wb3N0cyhcIi9hcGkvbmV3aml0L3Vua25vd24tYXNzZW1ibHkvdG8tcGFyc2VcIiwgcGFyYW1zKVxyXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pON5L2c5oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuYnV0dG9uMkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbjJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmJ1dHRvbjJMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3BvbnNlLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDph43mlrDorqHnrpfmgLvmiJAgKi9cclxuICAgIGhhbmRsZVVwZGF0ZShyb3cpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgIG1lc3NhZ2U6IFwi6Iez5bCR6YCJ5oup5LiA6KGMXCIsXHJcbiAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAvL+aJuemHj+aTjeS9nFxyXG4gICAgICAgIHZhciBwYXJhbXMgPSB7XHJcbiAgICAgICAgICBpc1NlbGVjdEFsbDogZmFsc2UsXHJcbiAgICAgICAgICB1bmtub3duQXNzZW1ibHlJZExpc3Q6IFtdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgaWYgKHJvdykge1xyXG4gICAgICAgICAgLy/ljZXooYxcclxuICAgICAgICAgIHBhcmFtcy51bmtub3duQXNzZW1ibHlJZExpc3QucHVzaChyb3cuaWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvL+WkmumAiVxyXG4gICAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBpZCA9IGVsZW1lbnQuaWQ7XHJcbiAgICAgICAgICAgIHBhcmFtcy51bmtub3duQXNzZW1ibHlJZExpc3QucHVzaChpZCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLmnKrnn6XmgLvmiJDor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHBhcmFtcykpO1xyXG4gICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L3RvLXBhcnNlXCIsIHBhcmFtcylcclxuICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IHRydWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaTjeS9nOaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogcmVzcG9uc2UubWVzc2FnZSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICBtZXNzYWdlOiByZXNwb25zZS5tZXNzYWdlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZmV0Y2hEYXRhKGlkKSB7XHJcbiAgICAgIC8v5b6q546v5Yqo5oCBXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L1wiICsgaWQpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDlr7zlh7rlip/og70gKi9cclxuICAgIGhhbmRsZURvd25sb2FkKCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2V4cG9ydFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuICAgICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAgIC5Cb2xiR2V0cyhcIi9hcGkvbmV3aml0L2V4Y2x1ZGUtcGFydC1jZmcvZG93bmxvYWQvXCIgKyBmaWxlbmFtZSlcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGVuYW1lLmluZGV4T2YoXCJfXCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZG93bk5hbWUgPVxyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoZmlsZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZG93bk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDkuI3ph43lpI3lr7zlh7rlip/og70gKi9cclxuICAgIGhhbmRsZURvd25sb2FkTm90UmVwZWF0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2V4cG9ydC1ub3QtcmVwZWF0XCIsIHRoaXMubGlzdFF1ZXJ5KVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGxldCBmaWxlbmFtZSA9IHJlcy5pdGVtO1xyXG4gICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgLkJvbGJHZXRzKFwiL2FwaS9uZXdqaXQvZXhjbHVkZS1wYXJ0LWNmZy9kb3dubG9hZC9cIiArIGZpbGVuYW1lKVxyXG4gICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoZmlsZW5hbWUuaW5kZXhPZihcIl9cIikgIT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGxldCBkb3duTmFtZSA9XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLnNsaWNlKDAsIGZpbGVuYW1lLmxhc3RJbmRleE9mKFwiX1wiKSkgK1xyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZShmaWxlbmFtZS5sYXN0SW5kZXhPZihcIi5cIikpO1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBkb3duTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZEZpbGUocmVzcG9uc2UsIGZpbGVuYW1lKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuaVsOaNri3lr7zlh7rmiJDlip/vvIFcIixcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMuJHJlZnNbcmVmTmFtZV0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpO1xyXG4gICAgICBcclxuICAgIH0sXHJcbiAgICAvKiog5pCc57Si5oyJ6ZKu5pON5L2cICovXHJcbiAgICBoYW5kbGVRdWVyeSgpIHtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gMTtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0VmFsdWUocGFyYW1zKSB7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmVyc2lvblZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RPcHRpb25zQ2hhbmdlKGl0ZW0pIHtcclxuICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICAvL3RoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIC8qIOS4u+mhtemdoua3u+WKoOaAu+aIkOaMiemSruS6i+S7tiAqL1xyXG4gICAgaGFuZGxlQ3JlYXRlKCkge1xyXG4gICAgICAvLyB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgIC8vICAgdGhpcy4kcmVmc1tcImZvcm1Db3VudFwiXS5yZXNldEZpZWxkcygpO1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9PSAxKSB7XHJcbiAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIuW/hemhu+mAieaLqeS4gOihjFwiLFxyXG4gICAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0udmluKTtcclxuICAgICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5re75Yqg5oC75oiQXCI7XHJcbiAgICAgICAgdGhpcy5pc0VkaXQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmZvcm0gPSB7fTtcclxuICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTtcclxuICAgICAgICB0aGlzLmFzc2x5ID0ge307XHJcbiAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IFtdO1xyXG4gICAgICAgIHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0ID0gW107XHJcbiAgICAgICAgdGhpcy50ZW1wQXNzQ2ZnTGlzdCA9IFtdO1xyXG4gICAgICAgIHRoaXMuYXNUZW1wID0gW107XHJcbiAgICAgICAgdGhpcy5nZXRVbmtub3duQXNzZW1ibHlMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5nZXRaY0NvZGUoKTtcclxuICAgICAgICB0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nRm9ybVZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwiYmlsbFN0YXR1c1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgMDogXCLmnKrnlJ/mlYhcIiwgMjogXCLlt7LnlJ/mlYhcIiwgMzogXCLlt7Llj5HluINcIiB9W3Jvd1tjb2x1bW4ucHJvcGVydHldXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09IFwib25saW5lVGltZVwiIHx8IGNvbHVtbi5wcm9wZXJ0eSA9PSBcInJlY2VpdmVUaW1lXCIpIHtcclxuICAgICAgICB2YXIgZGF0ZSA9IHJvd1tjb2x1bW4ucHJvcGVydHldO1xyXG4gICAgICAgIGlmIChkYXRlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERCBISDptbTpzc1wiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcm93W2NvbHVtbi5wcm9wZXJ0eV0gfHwgXCItLVwiO1xyXG4gICAgfSxcclxuICAgIHJvbGVGaWx0ZXIodHlwZSkge1xyXG4gICAgICByZXR1cm4gcHJvamVjdFR5cGVLZXlWYWx1ZVt0eXBlXTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGlmIChkYXRhICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIGRhdGEubGltaXQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuU2tpcENvdW50ID0gKHRoaXMucGFnZSAtIDEpICogMTU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuT25saW5lVGltZVZhbHVlICE9IFtdKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUJlZ2luID0gdGhpcy5PbmxpbmVUaW1lVmFsdWVbMF07IC8vdGhpcy5PbmxpbmVUaW1lVmFsdWVcclxuICAgICAgICAvLyA/IHRoaXMuT25saW5lVGltZVZhbHVlWzBdIHx8IFwiXCJcclxuICAgICAgICAvLyA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMuT25saW5lVGltZVZhbHVlWzFdOyAvL3RoaXMuT25saW5lVGltZVZhbHVlXHJcbiAgICAgICAgLy8gPyB0aGlzLk9ubGluZVRpbWVWYWx1ZVsxXSB8fCBcIlwiXHJcbiAgICAgICAgLy8gOiBcIlwiO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2xpc3RcIiwgdGhpcy5saXN0UXVlcnkpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIuacquefpeaAu+aIkFwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5saXN0UXVlcnkpKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoKSB7XHJcbiAgICAgIHRoaXMucGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHNvcnRDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBjb25zdCB7IHByb3AsIG9yZGVyIH0gPSBkYXRhO1xyXG4gICAgICBpZiAoIXByb3AgfHwgIW9yZGVyKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5saXN0UXVlcnkuU29ydGluZyA9IHByb3AgKyBcIiBcIiArIG9yZGVyO1xyXG4gICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHtcclxuICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDtcclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi2c3R5bGUgKi9cclxuICAgIGNlbGxTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiIH07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog6YCa6L+H5Zue6LCD5o6n5Yi26KGo5aS0c3R5bGUgKi9cclxuICAgIGhlYWRlclJvd1N0eWxlKHsgcm93LCBjb2x1bW4sIHJvd0luZGV4LCBjb2x1bW5JbmRleCB9KSB7XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT09IFwicXR5XCIpIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIC8vdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bovablnovmlbDmja7mupAgKi9cclxuICAgIGdldENhck1vZGVsKCkge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIiArIFwiP2RpY1R5cGVOYW1lPei9puWei1wiKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHJlc3BvbnNlLml0ZW1zXCIsIHJlc3BvbnNlLml0ZW0pO1xyXG4gICAgICAgICAgdGhpcy5jYXJNb2RlbHMgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwidGhpcyBpcyBjYXJNb2RlbHNcIix0aGlzLmNhck1vZGVscyk7XHJcbiAgICB9LFxyXG4gICAgLyog5Yqg5Y+35oyJ6ZKu5re75Yqg5LqL5Lu2ICovXHJcbiAgICBhZGR6YygpIHtcclxuICAgICAgLy90b2RvIOa3u+WKoOaAu+aIkOW3puS+p+eahCDliqDlj7fmjInpkq4g5b6F5YGaXHJcbiAgICAgIGFsZXJ0KFwiMVwiKTtcclxuICAgIH0sXHJcbiAgICAvKiDlh4/lj7fmjInpkq7liKDpmaTkuovku7YgKi9cclxuICAgIGRlbHpjKGluZGV4KSB7XHJcbiAgICAgIHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0LnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZXJwQXNzZW1ibHlDZmdMaXN0KTtcclxuICAgIH0sXHJcbiAgICAvKiDmt7vliqDmgLvmiJDmnIDnu4jmj5DkuqTnmoTmlbDmja7kuovku7YqL1xyXG4gICAgc2F2ZSgpIHtcclxuICAgICAgLy9pZih0aGlzLmRhdGEyLmxlbmd0aCA9PT0wKXtcclxuICAgICAgaWYgKHRoaXMuZGF0YTIubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBcIui/mOaciee7k+eul+S7t+S7o+eggeWwmuacquWMuemFjVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciBsYXN0U3VibWl0ID0ge1xyXG4gICAgICAgIGJpbGxJZDogdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkLFxyXG4gICAgICAgIHNjYW5Qb2ludDogXCJNMTAwXCIsXHJcbiAgICAgICAgZXJwQXNzZW1ibHlDZmdMaXN0OiBbXSxcclxuICAgICAgfTtcclxuICAgICAgbGFzdFN1Ym1pdC5lcnBBc3NlbWJseUNmZ0xpc3QgPSB0aGlzLnRlbXBBc3NDZmdMaXN0O1xyXG5cclxuICAgICAgLy8jcmVnaW9uXHJcbiAgICAgIC8vIHZhciBsYXN0U3VibWl0dCA9IFtdO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcImZsYWdcIilcclxuICAgICAgLy8gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAvLyAgIGVsZW1lbnQuZGV0YWlscy5mb3JFYWNoKGVsZW1lbnQxID0+IHtcclxuICAgICAgLy8gICAgIGxhc3RTdWJtaXR0LnB1c2goe1xyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseUNvZGU6IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseU5hbWU6IGVsZW1lbnQuZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAvLyAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgLy8gICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6XCJmN2Q0NWRiYS0zMTY0LTRhOTEtYjQ3Ny0zYzU2OGM4MWU2YTBcIixcclxuICAgICAgLy8gICAgICAgdmVoaWNsZU1vZGVsOiBlbGVtZW50LnZlaGljbGVNb2RlbCxcclxuICAgICAgLy8gICAgICAgZGV0YWlsczp7XHJcbiAgICAgIC8vICAgICAgICAgcGFydENvZGU6ZWxlbWVudDEucGFydENvZGUsXHJcbiAgICAgIC8vICAgICAgICAgcGFydE51bTplbGVtZW50MS5wYXJ0TnVtLFxyXG4gICAgICAvLyAgICAgICAgIGRlc2NyaXB0aW9uOmVsZW1lbnQxLmRlc2NyaXB0aW9uLFxyXG4gICAgICAvLyAgICAgICAgIGlzS2V5OiB0cnVlLFxyXG4gICAgICAvLyAgICAgICB9XHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgIH0pO1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coXCJ0aGlzIGlzIGxhc3RTdWJtaXR0OlwiLGxhc3RTdWJtaXR0KVxyXG4gICAgICAvLyB2YXIgbGFzdFN1Ym1pdCA9IFtdO1xyXG4gICAgICAvLyBsYXN0U3VibWl0dC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAvLyAgIGxhc3RTdWJtaXQucHVzaCh7XHJcbiAgICAgIC8vICAgICBiaWxsSUQ6dGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkLFxyXG4gICAgICAvLyAgICAgc2NhblBvaW50OiBcIk0xMDBcIixcclxuICAgICAgLy8gICAgIGVycEFzc2VtYmx5Q2ZnTGlzdDpbe1xyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseUNvZGU6IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAvLyAgICAgICBlcnBBc3NlbWJseU5hbWU6IGVsZW1lbnQuZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAvLyAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgLy8gICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgIC8vICAgICAgIHZlaGljbGVNb2RlbDogZWxlbWVudC52ZWhpY2xlTW9kZWwsXHJcbiAgICAgIC8vICAgICAgIGRldGFpbHM6ZWxlbWVudC5kZXRhaWxzXHJcbiAgICAgIC8vICAgICB9XVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vIH0pO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcInRoaXMgaXMgbGFzdFN1Ym1pdDpcIixsYXN0U3VibWl0KVxyXG4gICAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLnBvc3RzKFwiL2FwaS9uZXdqaXQvdW5rbm93bi1hc3NlbWJseS9hZGQtYXNzZW1ibHlcIiwgbGFzdFN1Ym1pdClcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudGVtcEFzc0NmZ0xpc3QgPSBbXTtcclxuICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLmFzVGVtcCA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICBtZXNzYWdlOiBcIua3u+WKoOaAu+aIkOaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAvL3RoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBlbHNle1xyXG4gICAgICAvLyAgIGFsZXJ0KFwi5pyq55+l6Zu25Lu25pyq5YiG6YWN5a6M77yM6K+356Gu6K6k77yBXCIpXHJcbiAgICAgIC8vIH1cclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bmnKrnn6XmgLvmiJDpm7bku7bmlbDmja7mupAgKi9cclxuICAgIGdldFVua25vd25Bc3NlbWJseUxpc3QoKSB7XHJcbiAgICAgIHRoaXMubGlzdFVua25vd25Bc3NlbWJseVF1ZXJ5LmJpbGxJZCA9IHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQ7XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkpO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L1wiICsgdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkuYmlsbElkXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kYXRhMiA9IHJlc3BvbnNlLml0ZW0udW5rbm93bkFzc2VtYmx5UGFydHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAodSkgPT4gdS5wYXJ0VHlwZSA9PT0gXCIxXCIgfHwgdS5wYXJ0VHlwZSA9PT0gbnVsbFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiDojrflj5bmgLvmiJDpm7bku7bmlbDmja7mupAqL1xyXG4gICAgZ2V0WmNDb2RlKCkge1xyXG4gICAgICB0aGlzLnpjQ29kZSA9IFtdO1xyXG4gICAgICB0aGlzLmxpc3RVbmtub3duQXNzZW1ibHlRdWVyeS52aW4gPSB0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdLnZpbjtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmxpc3RVbmtub3duQXNzZW1ibHlRdWVyeS52aW4pO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFxyXG4gICAgICAgICAgXCIvYXBpL25ld2ppdC91bmtub3duLWFzc2VtYmx5L2dldC1lcnAtYXNzZW1ibHktY29kZVwiICtcclxuICAgICAgICAgICAgXCI/dmluPVwiICtcclxuICAgICAgICAgICAgdGhpcy5saXN0VW5rbm93bkFzc2VtYmx5UXVlcnkudmluXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UuaXRlbSk7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXRlbS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJoYXMgbm8gQVNTQ29kZVwiKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3BvbnNlLml0ZW0uZm9yRWFjaCgoemNjb2RlKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnBBc3NlbWJseUNmZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseUNvZGU6IHpjY29kZSxcclxuICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogW10sXHJcbiAgICAgICAgICAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNhck1vZGVsOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiBbXHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogXCJcIixcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0TnVtOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8v5aSn5pWw5o2u6YeP5Yqg6L295pe2XHJcbiAgICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyog5re75Yqg5oC75oiQ5o+Q5Lqk5pa55rOVICovXHJcbiAgICBzdWJtaXRBc3N5Rm9ybShmb3JtTmFtZSkge1xyXG4gICAgICB0aGlzLiRyZWZzW2Zvcm1OYW1lXS52YWxpZGF0ZSgodmFsaWQpID0+IHtcclxuICAgICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmFzc2x5LmVycEFzc2VtYmx5Q29kZSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICBlcnBBc3NlbWJseUNvZGU6IHRoaXMuYXNzbHkuZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogdGhpcy5hc3NseS5lcnBBc3NlbWJseU5hbWUsXHJcbiAgICAgICAgICAgICAgY2FyTW9kZWw6IHRoaXMuYXNzbHkuY2FyTW9kZWwsXHJcbiAgICAgICAgICAgICAgaXNDb3ZlcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgZGV0YWlsczogW10sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmVycEFzc2VtYmx5Q2ZnTGlzdCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzbHkuZXJwQXNzZW1ibHlDb2RlID0gXCJcIjtcclxuICAgICAgICAgICAgdGhpcy5hc3NseS5lcnBBc3NlbWJseU5hbWUgPSBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLmFzc2x5LmNhck1vZGVsID0gXCJcIjtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFsZXJ0KFwi6K+35YWI5aGr5YaZRXJw5oC75oiQ5L+h5oGv77yBXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yIHN1Ym1pdCEhXCIpO1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgYnRubGVmdGNsaWNrKCkge1xyXG4gICAgICBpZiAodGhpcy5hc1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6nmgLvmiJDnvJblj7fvvIFcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRSb3dUZW1wLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6npnIDnp7vliqjnmoTpm7bku7ZcIik7XHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAgICAgcGFyc2VJbnQodGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSkgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gcGFyc2VJbnQodGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSk7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ051bVZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5udW1UaXRsZSA9IFwi6L6T5YWl56e75Yqo57uT566X5Lu25pWw6YePXCI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiUi0+RlwiKTtcclxuICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPSBpdGVtLnBhcnROdW07XHJcbiAgICAgICAgICAgIC8vaWYodGhpcy5udW1Gb3JtRGF0YS5udW0gPD0gaXRlbS5wYXJ0TnVtICYmIHRoaXMubnVtRm9ybURhdGEubnVtID4gMCl7XHJcblxyXG4gICAgICAgICAgICAvL+aVsOaNruaPkuWFpeacgOe7iOe8k+WtmFxyXG4gICAgICAgICAgICBpZiAodGhpcy50ZW1wQXNzQ2ZnTGlzdC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNlY29uZFwiKTtcclxuICAgICAgICAgICAgICB2YXIgcmZNb3ZlID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgaWYgKHJmTW92ZS5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHZhciBzYW1lRGV0YWlsID0gcmZNb3ZlWzBdLmRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmIChzYW1lRGV0YWlsLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICBzYW1lRGV0YWlsWzBdLnBhcnROdW0gPVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHNhbWVEZXRhaWxbMF0ucGFydE51bSkgK1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJmTW92ZVswXS5kZXRhaWxzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogaXRlbS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0TnVtOiB0aGlzLm51bUZvcm1EYXRhLm51bSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5Yqg6L+b5Y675LqGXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZW1wQXNzQ2ZnTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TmFtZTogdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgICBpc0NvdmVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgICB2ZWhpY2xlTW9kZWw6IHRoaXMuYXNUZW1wWzBdLmNhck1vZGVsLFxyXG4gICAgICAgICAgICAgICAgICBkZXRhaWxzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogaXRlbS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdFwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBBc3NDZmdMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgIGlzQ292ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgZGV0YWlsczogW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnRDb2RlOiBpdGVtLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGp1ZGdlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIHZhciB0ID1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KGp1ZGdlWzBdLnBhcnROdW0pICsgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApWzBdLnBhcnROdW0gPSB0O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBhcnRDb2RlOiBpdGVtLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgcGFydE51bTogcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8qIOWPs+S+p+aVsOaNruenu+WKqCAqL1xyXG4gICAgICAgICAgICB2YXIgZGVsaWQgPSB0aGlzLmRhdGEyLmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICApWzBdO1xyXG4gICAgICAgICAgICB2YXIgbjEgPSBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgIHZhciBuMiA9IHBhcnNlSW50KGRlbGlkLnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZiAobjEgPT09IG4yKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMiA9IHRoaXMuZGF0YTIuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IGRlbGlkLnBhcnROdW0gLSB0aGlzLm51bUZvcm1EYXRhLm51bTtcclxuICAgICAgICAgICAgICBpdGVtLnBhcnROdW0gPSBuMiAtIG4xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvL31cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBidG5yaWdodGNsaWNrKCkge1xyXG4gICAgICBpZiAodGhpcy5hc1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgYWxlcnQoXCLor7flhYjpgInmi6nmgLvmiJDnvJblj7fvvIFcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMubGVmdFJvd1RlbXAubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBhbGVydChcIuivt+WFiOmAieaLqemcgOenu+WKqOeahOmbtuS7tlwiKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5sZW5ndGggPT09IDEgJiZcclxuICAgICAgICAgIHBhcnNlSW50KHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydE51bSkgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gcGFyc2VJbnQodGhpcy5sZWZ0Um93VGVtcG5wbVswXS5wYXJ0TnVtKTtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm51bVRpdGxlID0gXCLovpPlhaXnp7vliqjnu5Pnrpfku7bmlbDph49cIjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJGLT5SXCIpO1xyXG4gICAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID0gaXRlbS5wYXJ0TnVtO1xyXG4gICAgICAgICAgICAvL2lmKHRoaXMubnVtRm9ybURhdGEubnVtIDw9IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydE51bSAmJiB0aGlzLm51bUZvcm1EYXRhLm51bSA+IDApe1xyXG5cclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXmnIDnu4jnvJPlrZhcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLnp7vpmaTmiJbliKDpmaRcIik7XHJcbiAgICAgICAgICAgIHZhciBmck1vdmUgPSB0aGlzLnRlbXBBc3NDZmdMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5Q29kZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB2YXIgc2FtZWRldGFpbCA9IGZyTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAoc2FtZWRldGFpbC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChzYW1lZGV0YWlsWzBdLnBhcnROdW0pID09PVxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBmck1vdmVbMF0uZGV0YWlscyA9IGZyTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHNhbWVkZXRhaWxbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlSW50KHNhbWVkZXRhaWxbMF0ucGFydE51bSkgLVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHNhbWVkZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgYWxlcnQoXCLmsqHmnInmlbDmja4hXCIpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMgdGVtcEFzc0NmZ0xpc3Qg5pyA57uI5pWw5o2uXCIsIHRoaXMudGVtcEFzc0NmZ0xpc3QpO1xyXG5cclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXlj7PkvqfmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy5kYXRhMi5maWx0ZXIoKHUpID0+IHUucGFydENvZGUgPT09IGl0ZW0ucGFydENvZGUpO1xyXG4gICAgICAgICAgICBpZiAoanVkZ2UubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdmFyIHQgPVxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoanVkZ2VbMF0ucGFydE51bSkgKyBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gaXRlbS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcGFydENvZGU6IGl0ZW0ucGFydENvZGUsXHJcbiAgICAgICAgICAgICAgICBwYXJ0TnVtOiBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSksIC8v56e75Yqo5qGG6L6T5YWl55qE5pWw6YePXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyog5Lit6Ze05pWw5o2u56e75YqoICovXHJcbiAgICAgICAgICAgIHZhciBkZWxpZCA9IHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSBpdGVtLnBhcnRDb2RlXHJcbiAgICAgICAgICAgIClbMF07XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudGVtcGRldGFpbHMpO1xyXG4gICAgICAgICAgICB2YXIgbjEgPSBwYXJzZUludCh0aGlzLm51bUZvcm1EYXRhLm51bSk7XHJcbiAgICAgICAgICAgIHZhciBuMiA9IHBhcnNlSW50KGRlbGlkLnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZiAobjEgPT09IG4yKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscyA9IHRoaXMudGVtcGRldGFpbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgIT09IGl0ZW0ucGFydENvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMubGVmdFJvd1RlbXAgPSBbXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSBpdGVtLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKVswXS5wYXJ0TnVtID1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KGRlbGlkLnBhcnROdW0pIC0gcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIGl0ZW0ucGFydE51bSA9IG4yIC0gbjE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiDkv53lrZjmlbDph4/kuovku7YgKi9cclxuICAgIHNhdmVOdW0oKSB7XHJcbiAgICAgIGlmICh0aGlzLmFzVGVtcC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAvL+WIpOaWreS4remXtOmAieS4reenu+WKqOi/mOaYr+WPs+S+p+mAieS4reenu+WKqFxyXG4gICAgICAgIC8qICAg5bem5L6n56e75Yqo5Yiw5Y+z5L6nICAgKi9cclxuICAgICAgICBpZiAodGhpcy5sZWZ0Um93VGVtcC5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiRi0+UlwiKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPD0gdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0TnVtICYmXHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtID4gMFxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIC8v5pWw5o2u5o+S5YWl5pyA57uI57yT5a2YXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi56e76Zmk5oiW5Yig6ZmkXCIpO1xyXG4gICAgICAgICAgICB2YXIgZnJNb3ZlID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdmFyIHNhbWVkZXRhaWwgPSBmck1vdmVbMF0uZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydENvZGVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKHNhbWVkZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgcGFyc2VJbnQoc2FtZWRldGFpbFswXS5wYXJ0TnVtKSA9PT1cclxuICAgICAgICAgICAgICAgIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKVxyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgZnJNb3ZlWzBdLmRldGFpbHMgPSBmck1vdmVbMF0uZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlICE9PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzYW1lZGV0YWlsWzBdLnBhcnROdW0gPVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUludChzYW1lZGV0YWlsWzBdLnBhcnROdW0pIC1cclxuICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChzYW1lZGV0YWlsLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgICAgICAgIGFsZXJ0KFwi5rKh5pyJ5pWw5o2uIVwiKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuXHJcbiAgICAgICAgICAgIC8v5pWw5o2u5o+S5YWl5Y+z5L6n5pWw5o2u5rqQXHJcbiAgICAgICAgICAgIHZhciBqdWRnZSA9IHRoaXMuZGF0YTIuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChqdWRnZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICB2YXIgdCA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChqdWRnZVswXS5wYXJ0TnVtKSArIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKVswXS5wYXJ0TnVtID0gdDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMubGVmdFJvd1RlbXBbMF0uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwYXJ0Q29kZTogdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgIHBhcnROdW06IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiDkuK3pl7TmlbDmja7np7vliqggKi9cclxuICAgICAgICAgICAgdmFyIGRlbGlkID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMubGVmdFJvd1RlbXBbMF0ucGFydENvZGVcclxuICAgICAgICAgICAgKVswXTtcclxuICAgICAgICAgICAgdmFyIG4xID0gcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICB2YXIgbjIgPSBwYXJzZUludChkZWxpZC5wYXJ0TnVtKTtcclxuICAgICAgICAgICAgaWYgKG4xID09PSBuMikge1xyXG4gICAgICAgICAgICAgIHRoaXMudGVtcGRldGFpbHMgPSB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlICE9PSB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5wYXJ0Q29kZSA9PT0gdGhpcy5sZWZ0Um93VGVtcFswXS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChkZWxpZC5wYXJ0TnVtKSAtIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLmxlZnRSb3dUZW1wWzBdLnBhcnROdW0gPSBuMiAtIG4xO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubnVtRm9ybURhdGEubnVtID09IDApIHtcclxuICAgICAgICAgICAgYWxlcnQoXCLovpPlhaXmlbDlrZfkuI3og73kuLow77yBXCIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYWxlcnQoXCLovpPlhaXkuI3mraPnoa4s6K+356Gu6K6k77yBXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5yaWdodFJvd1RlbXAubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAvKiAgIOWPs+S+p+enu+WKqOWIsOW3puS+pyAgICovXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlItPkZcIik7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMubnVtRm9ybURhdGEubnVtIDw9IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnROdW0gJiZcclxuICAgICAgICAgICAgdGhpcy5udW1Gb3JtRGF0YS5udW0gPiAwXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXmnIDnu4jnvJPlrZhcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVtcEFzc0NmZ0xpc3QubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJzZWNvbmRcIik7XHJcbiAgICAgICAgICAgICAgdmFyIHJmTW92ZSA9IHRoaXMudGVtcEFzc0NmZ0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGlmIChyZk1vdmUubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgc2FtZURldGFpbCA9IHJmTW92ZVswXS5kZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNhbWVEZXRhaWwubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNhbWVEZXRhaWxbMF0ucGFydE51bSA9XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQoc2FtZURldGFpbFswXS5wYXJ0TnVtKSArXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQodGhpcy5udW1Gb3JtRGF0YS5udW0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmZNb3ZlWzBdLmRldGFpbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucmlnaHRSb3dUZW1wWzBdLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBwYXJ0Q29kZTogdGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydENvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFydE51bTogdGhpcy5udW1Gb3JtRGF0YS5udW0sIC8v56e75Yqo5qGG6L6T5YWl55qE5pWw6YePXHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuWKoOi/m+WOu+S6hlwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVtcEFzc0NmZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5Q29kZTogdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlDb2RlLFxyXG4gICAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5jYXJNb2RlbCxcclxuICAgICAgICAgICAgICAgICAgaXNDb3ZlcjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmVyc2lvbklkOiB0aGlzLmFzVGVtcFswXS5wcmV2aW91c1ZlcnNpb25JZCxcclxuICAgICAgICAgICAgICAgICAgZGV0YWlsczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmaXJzdFwiKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBBc3NDZmdMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGUsXHJcbiAgICAgICAgICAgICAgICBlcnBBc3NlbWJseU5hbWU6IHRoaXMuYXNUZW1wWzBdLmVycEFzc2VtYmx5TmFtZSxcclxuICAgICAgICAgICAgICAgIGlzQ292ZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgcHJldmlvdXNWZXJzaW9uSWQ6IHRoaXMuYXNUZW1wWzBdLnByZXZpb3VzVmVyc2lvbklkLFxyXG4gICAgICAgICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5jYXJNb2RlbCxcclxuICAgICAgICAgICAgICAgIGRldGFpbHM6IFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBpc0tleTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFydENvZGU6IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnROdW06IHRoaXMubnVtRm9ybURhdGEubnVtLCAvL+enu+WKqOahhui+k+WFpeeahOaVsOmHj1xyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRlbXBBc3NDZmdMaXN0IOacgOe7iOaVsOaNrlwiLCB0aGlzLnRlbXBBc3NDZmdMaXN0KTtcclxuICAgICAgICAgICAgLy/mlbDmja7mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICAgICAgdmFyIGp1ZGdlID0gdGhpcy50ZW1wZGV0YWlscy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUucGFydENvZGUgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLnBhcnRDb2RlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGlmIChqdWRnZS5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICAgICAgICB2YXIgdCA9XHJcbiAgICAgICAgICAgICAgICBwYXJzZUludChqdWRnZVswXS5wYXJ0TnVtKSArIHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh1KSA9PiB1LnBhcnRDb2RlID09PSB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZVxyXG4gICAgICAgICAgICAgIClbMF0ucGFydE51bSA9IHQ7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLnJpZ2h0Um93VGVtcFswXS5wYXJ0Q29kZSxcclxuICAgICAgICAgICAgICAgIHBhcnROdW06IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKSwgLy/np7vliqjmoYbovpPlhaXnmoTmlbDph49cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAvKiDlj7PkvqfmlbDmja7np7vliqggKi9cclxuICAgICAgICAgICAgdmFyIGRlbGlkID0gdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKHUpID0+IHUuaWQgPT09IHRoaXMucmlnaHRSb3dUZW1wWzBdLmlkXHJcbiAgICAgICAgICAgIClbMF07XHJcbiAgICAgICAgICAgIHZhciBuMSA9IHBhcnNlSW50KHRoaXMubnVtRm9ybURhdGEubnVtKTtcclxuICAgICAgICAgICAgdmFyIG4yID0gcGFyc2VJbnQoZGVsaWQucGFydE51bSk7XHJcbiAgICAgICAgICAgIGlmIChuMSA9PT0gbjIpIHtcclxuICAgICAgICAgICAgICB0aGlzLmRhdGEyID0gdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5pZCAhPT0gdGhpcy5yaWdodFJvd1RlbXBbMF0uaWRcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhMi5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodSkgPT4gdS5pZCA9PT0gdGhpcy5yaWdodFJvd1RlbXBbMF0uaWRcclxuICAgICAgICAgICAgICApWzBdLnBhcnROdW0gPSBkZWxpZC5wYXJ0TnVtIC0gdGhpcy5udW1Gb3JtRGF0YS5udW07XHJcbiAgICAgICAgICAgICAgdGhpcy5yaWdodFJvd1RlbXBbMF0ucGFydE51bSA9IG4yIC0gbjE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5udW1Gb3JtRGF0YS5udW0gPT0gMCkge1xyXG4gICAgICAgICAgICBhbGVydChcIui+k+WFpeaVsOWtl+S4jeiDveS4ujDvvIFcIik7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBhbGVydChcIui+k+WFpeS4jeato+ehrizor7fnoa7orqTvvIFcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFsZXJ0KFwi6K+35YWI6YCJ5oup5oC75oiQ57yW5Y+377yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlhbG9nTnVtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSxcclxuICAgIC8qIOaAu+aIkOe8luWPt+mAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2thc3Mocm93KSB7XHJcbiAgICAgIHRoaXMuYXNUZW1wID0gW107XHJcbiAgICAgIHRoaXMudGVtcGRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy4kcmVmcy5hc1RhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMuYXNUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5hc1RlbXAucHVzaChyb3cpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuYXNUZW1wWzBdLmRldGFpbHMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgLy/pgInkuK3mj5LlhaXkuK3pl7TmlbDmja7mupBcclxuICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLnB1c2goe1xyXG4gICAgICAgICAgaXNLZXk6IGZhbHNlLFxyXG4gICAgICAgICAgcGFydENvZGU6IHRoaXMuYXNUZW1wWzBdLmRldGFpbHNbMF0ucGFydENvZGUsXHJcbiAgICAgICAgICBwYXJ0TnVtOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLnBhcnROdW0sXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWw6IHRoaXMuYXNUZW1wWzBdLmRldGFpbHNbMF0uY2FyTW9kZWwsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy/kuozmrKHpgInkuK3mj5LlhaXmnIDnu4jmj5DkuqTkuK3nmoRkZXRhaWxzXHJcbiAgICAgIHZhciBqdWRnZVNlYyA9IHRoaXMudGVtcEFzc0NmZ0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICh1KSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5hc1RlbXBbMF0uZXJwQXNzZW1ibHlDb2RlXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyBqdWRnZVNlYzpcIiwganVkZ2VTZWMpO1xyXG4gICAgICBpZiAoanVkZ2VTZWMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIGp1ZGdlU2VjWzBdLmRldGFpbHM6XCIsIGp1ZGdlU2VjWzBdLmRldGFpbHMpO1xyXG4gICAgICAgIGp1ZGdlU2VjWzBdLmRldGFpbHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyB0aGlzLnRlbXBkZXRhaWxzXCIsIHRoaXMudGVtcGRldGFpbHMpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMgYXNUZW1wXCIsIHRoaXMuYXNUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDmgLvmiJDnvJblj7flpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdEFzcyhzZWxlY3Rpb24sIHJvdykge1xyXG4gICAgICB0aGlzLmFzVGVtcCA9IFtdOyAvL+a4heepuuW3sumAiVxyXG4gICAgICB0aGlzLnRlbXBkZXRhaWxzID0gW107XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGM55qEIENoZWNrYm94IOaXtuinpuWPkeeahOS6i+S7tlwiLFxyXG4gICAgICAgIHNlbGVjdGlvbixcclxuICAgICAgICByb3dcclxuICAgICAgKTtcclxuICAgICAgLy8g6YCJ5oup6aG55aSn5LqOMeaXtlxyXG4gICAgICBpZiAoc2VsZWN0aW9uLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBsZXQgZGVsX3JvdyA9IHNlbGVjdGlvbi5zaGlmdCgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCfmiormlbDnu4TnmoTnrKzkuIDkuKrlhYPntKDku47lhbbkuK3liKDpmaTlkI4nLCBzZWxlY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuJHJlZnMuYXNUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oZGVsX3JvdywgZmFsc2UpOyAvLyDnlKjkuo7lpJrpgInooajmoLzvvIzliIfmjaLmn5DkuIDooYznmoTpgInkuK3nirbmgIHvvIzlpoLmnpzkvb/nlKjkuobnrKzkuozkuKrlj4LmlbDvvIzliJnmmK/orr7nva7ov5nkuIDooYzpgInkuK3kuI7lkKbvvIhzZWxlY3RlZCDkuLogdHJ1ZSDliJnpgInkuK3vvIlcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFzVGVtcC5wdXNoKHNlbGVjdGlvblswXSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGMXCIsIHRoaXMuYXNUZW1wKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmFzVGVtcFswXS5kZXRhaWxzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIC8v6YCJ5Lit5o+S5YWl5Lit6Ze05pWw5o2u5rqQXHJcbiAgICAgICAgdGhpcy50ZW1wZGV0YWlscy5wdXNoKHtcclxuICAgICAgICAgIGlzS2V5OiBmYWxzZSxcclxuICAgICAgICAgIHBhcnRDb2RlOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLnBhcnRDb2RlLFxyXG4gICAgICAgICAgcGFydE51bTogdGhpcy5hc1RlbXBbMF0uZGV0YWlsc1swXS5wYXJ0TnVtLFxyXG4gICAgICAgICAgdmVoaWNsZU1vZGVsOiB0aGlzLmFzVGVtcFswXS5kZXRhaWxzWzBdLmNhck1vZGVsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvL+S6jOasoemAieS4reaPkuWFpeacgOe7iOaPkOS6pOS4reeahGRldGFpbHNcclxuICAgICAgdmFyIGp1ZGdlU2VjID0gdGhpcy50ZW1wQXNzQ2ZnTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKHUpID0+IHUuZXJwQXNzZW1ibHlDb2RlID09PSB0aGlzLmFzVGVtcFswXS5lcnBBc3NlbWJseUNvZGVcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIGp1ZGdlU2VjOlwiLCBqdWRnZVNlYyk7XHJcbiAgICAgIGlmIChqdWRnZVNlYy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMgaXMganVkZ2VTZWNbMF0uZGV0YWlsczpcIiwganVkZ2VTZWNbMF0uZGV0YWlscyk7XHJcbiAgICAgICAganVkZ2VTZWNbMF0uZGV0YWlscy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRlbXBkZXRhaWxzLnB1c2goZWxlbWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzIGlzIHRoaXMudGVtcGRldGFpbHNcIiwgdGhpcy50ZW1wZGV0YWlscyk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidGhpcyBpcyBhc1RlbXBcIiwgdGhpcy5hc1RlbXApO1xyXG4gICAgfSxcclxuICAgIC8qIOWPs+S+p+aVsOaNrumAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2tSaWdodChyb3cpIHtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTtcclxuICAgICAgdGhpcy4kcmVmcy5yaWdodFRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMucmlnaHRUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAucHVzaChyb3cpO1xyXG4gICAgfSxcclxuICAgIC8qIOW3puS+p+aVsOaNrumAieS4reS6i+S7tiAqL1xyXG4gICAgcm93Q2xpY2tMZWZ0KHJvdykge1xyXG4gICAgICB0aGlzLmxlZnRSb3dUZW1wID0gW107XHJcbiAgICAgIHRoaXMuJHJlZnMubGVmdFRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubGVmdFRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpO1xyXG4gICAgICB0aGlzLmxlZnRSb3dUZW1wLnB1c2gocm93KTtcclxuICAgIH0sXHJcbiAgICAvKiDlj7PkvqflpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdFJpZ2h0KHNlbGVjdGlvbiwgcm93KSB7XHJcbiAgICAgIHRoaXMucmlnaHRSb3dUZW1wID0gW107IC8v5riF56m65bey6YCJXHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5pWw5o2u6KGM55qEIENoZWNrYm94IOaXtuinpuWPkeeahOS6i+S7tlwiLFxyXG4gICAgICAgIHNlbGVjdGlvbixcclxuICAgICAgICByb3dcclxuICAgICAgKTtcclxuICAgICAgLy8g6YCJ5oup6aG55aSn5LqOMeaXtlxyXG4gICAgICAvLyBpZiAoc2VsZWN0aW9uLmxlbmd0aCA+IDEpIHtcclxuICAgICAgLy8gbGV0IGRlbF9yb3cgPSBzZWxlY3Rpb24uc2hpZnQoKTtcclxuICAgICAgLy8gLy8gY29uc29sZS5sb2coJ+aKiuaVsOe7hOeahOesrOS4gOS4quWFg+e0oOS7juWFtuS4reWIoOmZpOWQjicsIHNlbGVjdGlvbik7XHJcbiAgICAgIC8vIHRoaXMuJHJlZnMucmlnaHRUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24oZGVsX3JvdywgZmFsc2UpOyAvLyDnlKjkuo7lpJrpgInooajmoLzvvIzliIfmjaLmn5DkuIDooYznmoTpgInkuK3nirbmgIHvvIzlpoLmnpzkvb/nlKjkuobnrKzkuozkuKrlj4LmlbDvvIzliJnmmK/orr7nva7ov5nkuIDooYzpgInkuK3kuI7lkKbvvIhzZWxlY3RlZCDkuLogdHJ1ZSDliJnpgInkuK3vvIlcclxuICAgICAgLy8gfVxyXG4gICAgICBzZWxlY3Rpb24uZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmlnaHRSb3dUZW1wLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjFwiLCB0aGlzLnJpZ2h0Um93VGVtcCk7XHJcbiAgICB9LFxyXG4gICAgLyog5Y+z5L6n5aSN6YCJ5qGG5YWo6YCJ5LqL5Lu2ICovXHJcbiAgICBzZWxlY3RSaWdodEFsbChzZWxlY3Rpb24pIHtcclxuICAgICAgdGhpcy5yaWdodFJvd1RlbXAgPSBbXTsgLy/muIXnqbrlt7LpgIlcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIkgQ2hlY2tib3gg5pe26Kem5Y+R55qE5LqL5Lu2XCIsIHNlbGVjdGlvbik7XHJcbiAgICAgIHNlbGVjdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yaWdodFJvd1RlbXAucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5b2T55So5oi35omL5Yqo5Yu+6YCJ5YWo6YCJXCIsIHRoaXMucmlnaHRSb3dUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDlt6bkvqflpI3pgInmoYbljZXpgInkuovku7YgKi9cclxuICAgIHNlbGVjdExlZnQoc2VsZWN0aW9uLCByb3cpIHtcclxuICAgICAgdGhpcy5sZWZ0Um93VGVtcCA9IFtdOyAvL+a4heepuuW3sumAiVxyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjOeahCBDaGVja2JveCDml7bop6blj5HnmoTkuovku7ZcIixcclxuICAgICAgICBzZWxlY3Rpb24sXHJcbiAgICAgICAgcm93XHJcbiAgICAgICk7XHJcbiAgICAgIC8vIC8vIOmAieaLqemhueWkp+S6jjHml7ZcclxuICAgICAgLy8gaWYgKHNlbGVjdGlvbi5sZW5ndGggPiAxKSB7XHJcbiAgICAgIC8vIGxldCBkZWxfcm93ID0gc2VsZWN0aW9uLnNoaWZ0KCk7XHJcbiAgICAgIC8vIC8vIGNvbnNvbGUubG9nKCfmiormlbDnu4TnmoTnrKzkuIDkuKrlhYPntKDku47lhbbkuK3liKDpmaTlkI4nLCBzZWxlY3Rpb24pO1xyXG4gICAgICAvLyB0aGlzLiRyZWZzLnJpZ2h0VGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKGRlbF9yb3csIGZhbHNlKTsgLy8g55So5LqO5aSa6YCJ6KGo5qC877yM5YiH5o2i5p+Q5LiA6KGM55qE6YCJ5Lit54q25oCB77yM5aaC5p6c5L2/55So5LqG56ys5LqM5Liq5Y+C5pWw77yM5YiZ5piv6K6+572u6L+Z5LiA6KGM6YCJ5Lit5LiO5ZCm77yIc2VsZWN0ZWQg5Li6IHRydWUg5YiZ6YCJ5Lit77yJXHJcbiAgICAgIC8vIH1cclxuICAgICAgc2VsZWN0aW9uLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICB0aGlzLmxlZnRSb3dUZW1wLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuW9k+eUqOaIt+aJi+WKqOWLvumAieaVsOaNruihjFwiLCB0aGlzLmxlZnRSb3dUZW1wKTtcclxuICAgIH0sXHJcbiAgICAvKiDlt6bkvqflpI3pgInmoYblhajpgInkuovku7YgKi9cclxuICAgIHNlbGVjdExlZnRBbGwoc2VsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMubGVmdFJvd1RlbXAgPSBbXTsgLy/muIXnqbrlt7LpgIlcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIkgQ2hlY2tib3gg5pe26Kem5Y+R55qE5LqL5Lu2XCIsIHNlbGVjdGlvbik7XHJcbiAgICAgIHNlbGVjdGlvbi5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sZWZ0Um93VGVtcC5wdXNoKGl0ZW0pO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc29sZS5sb2coXCLlvZPnlKjmiLfmiYvliqjli77pgInlhajpgIlcIiwgdGhpcy5sZWZ0Um93VGVtcCk7XHJcbiAgICB9LFxyXG4gICAgZ2V0dmVoaWNsZU1vZGVsKCkge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIiwgdGhpcy52ZWhpY2xlTW9kZWxRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy52ZWhpY2xlTW9kZWxMaXN0ID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgIH0sXHJcbiAgICB2YWx1ZXNlbGVjdENoYW5nZSgpIHt9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxyXG5AaW1wb3J0IFwiLi4vLi4vLi4vcGctZmlzL3N0eWxlcy9jcm10YWJsZS5zY3NzXCI7XHJcbjwvc3R5bGU+XHJcblxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD02YmY2ODA1MCZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02YmY2ODA1MCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcIjZiZjY4MDUwXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///67e9\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"6e0c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomConversionIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomConversionSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomConversionRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomConversionUpdate; });\n/* unused harmony export crmUomConversionDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmUomConversionIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion/list\', data);\n} // 创建\n\nfunction crmUomConversionSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion\', data);\n} // 根据id获取\n\nfunction crmUomConversionRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom-conversion/\' + id);\n} // 根据id修改\n\nfunction crmUomConversionUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom-conversion/\' + id, data);\n} // 删除\n\nfunction crmUomConversionDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom-conversion/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbUNvbnZlcnNpb24vdW9tQ29udmVyc2lvbi5qcz82ZTBjIl0sIm5hbWVzIjpbImNybVVvbUNvbnZlcnNpb25JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tQ29udmVyc2lvblNhdmUiLCJjcm1Vb21Db252ZXJzaW9uUmVhZCIsImlkIiwiZ2V0cyIsImNybVVvbUNvbnZlcnNpb25VcGRhdGUiLCJwdXRzIiwiY3JtVW9tQ29udmVyc2lvbkRlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EscUJBQVQsQ0FBK0JDLElBQS9CLEVBQXFDO0FBQzFDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBWixFQUFnREYsSUFBaEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxvQkFBVCxDQUE4QkgsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDhCQUFaLEVBQTJDRixJQUEzQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLG9CQUFULENBQThCQyxFQUE5QixFQUFrQztBQUN2QyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsa0NBQWdDRCxFQUEzQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLHNCQUFULENBQWdDRixFQUFoQyxFQUFtQ0wsSUFBbkMsRUFBeUM7QUFDOUMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLGtDQUFnQ0gsRUFBM0MsRUFBOENMLElBQTlDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1Msc0JBQVQsQ0FBZ0NULElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxxQ0FBWixFQUFrREYsSUFBbEQsQ0FBUDtBQUNEIiwiZmlsZSI6IjZlMGMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tQ29udmVyc2lvblNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbicsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tQ29udmVyc2lvblJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS91b20tY29udmVyc2lvbi8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21Db252ZXJzaW9uRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdW9tLWNvbnZlcnNpb24vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///6e0c\n')},"6f0b":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdFOTRBNUY2RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdFOTRBNUY3RjEzRTExRThCMzE4RjAyMzQwQTc5RjQ3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0U5NEE1RjRGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0U5NEE1RjVGMTNFMTFFOEIzMThGMDIzNDBBNzlGNDciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4t60rSAAAAkUlEQVR42mL8//8/AzUBEwOVAQuMsXr1arINCQ0NJdmFOtT0ch0QXwbiepK8jAOADIH5B0Y3kuvCGqghjlC+I5RfQ66BD6CGvIbyX0P5D8j18hIsYq9xiNMuHQ49A0nN2P/JdSHjoPHycyC2IVKvNRC/IJQOU0AFDxBLEGHgUyBOJmTgNiCWpMTLjIO+xAYIMABJgBzD8GiSjgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZXhwb3J0LnBuZz81YzJiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI2ZjBiLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlFBQUFBVUNBWUFBQUNOaVIwTkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamRGT1RSQk5VWTJSakV6UlRFeFJUaENNekU0UmpBeU16UXdRVGM1UmpRM0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qZEZPVFJCTlVZM1JqRXpSVEV4UlRoQ016RTRSakF5TXpRd1FUYzVSalEzSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk4wVTVORUUxUmpSR01UTkZNVEZGT0VJek1UaEdNREl6TkRCQk56bEdORGNpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TjBVNU5FRTFSalZHTVRORk1URkZPRUl6TVRoR01ESXpOREJCTnpsR05EY2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejR0NjByU0FBQUFrVWxFUVZSNDJtTDgvLzgvQXpVQkV3T1ZBUXVNc1hyMWFySU5DUTBOSmRtRk90VDBjaDBRWHdiaWVwSzhqQU9BRElINUIwWTNrdXZDR3FnaGpsQytJNVJmUTY2QkQ2Q0d2SWJ5WDBQNUQ4ajE4aElzWXE5eGlOTXVIUTQ5QTBuTjJQL0pkU0hqb1BIeWN5QzJJVkt2TlJDL0lKUU9VMEFGRHhCTEVHSGdVeUJPSm1UZ05pQ1dwTVRMaklPK3hBWUlNQUJKZ0J6RDhHaVNqZ0FBQUFCSlJVNUVya0pnZ2c9PVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///6f0b\n')},"731e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9pbmRleC52dWU/OTk4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiI3MzFlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///731e\n")},"7ae2":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmLocIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmLocSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmLocRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmLocUpdate; });\n/* unused harmony export crmLocDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmLocIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc/list\', data);\n} // 创建\n\nfunction crmLocSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc\', data);\n} // 根据id获取\n\nfunction crmLocRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/loc/\' + id);\n} // 根据id修改\n\nfunction crmLocUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/loc/\' + id, data);\n} // 删除\n\nfunction crmLocDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/loc/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2xvYy9sb2MuanM/N2FlMiJdLCJuYW1lcyI6WyJjcm1Mb2NJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtTG9jU2F2ZSIsImNybUxvY1JlYWQiLCJpZCIsImdldHMiLCJjcm1Mb2NVcGRhdGUiLCJwdXRzIiwiY3JtTG9jRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6IjdhZTIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2xvYy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTG9jU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2xvYycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtTG9jUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2xvYy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2xvYy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Mb2NEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9sb2MvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///7ae2\n')},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},8889:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmAreaItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmAreaItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmAreaItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmAreaItemUpdate; });\n/* unused harmony export crmAreaItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmAreaItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item/list\', data);\n} // 创建\n\nfunction crmAreaItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item\', data);\n} // 根据id获取\n\nfunction crmAreaItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/area-item/\' + id);\n} // 根据id修改\n\nfunction crmAreaItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/area-item/\' + id, data);\n} // 删除\n\nfunction crmAreaItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2FyZWFJdGVtL2FyZWFJdGVtLmpzPzg4ODkiXSwibmFtZXMiOlsiY3JtQXJlYUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQXJlYUl0ZW1TYXZlIiwiY3JtQXJlYUl0ZW1SZWFkIiwiaWQiLCJnZXRzIiwiY3JtQXJlYUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtQXJlYUl0ZW1EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QiLCJmaWxlIjoiODg4OS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2FyZWEtaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUl0ZW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvYXJlYS1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUFyZWFJdGVtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8889\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8b26":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmStrategyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmStrategySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmStrategyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmStrategyUpdate; });\n/* unused harmony export crmStrategyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmStrategyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy/list\', data);\n} // 创建\n\nfunction crmStrategySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy\', data);\n} // 根据id获取\n\nfunction crmStrategyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/strategy/\' + id);\n} // 根据id修改\n\nfunction crmStrategyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/strategy/\' + id, data);\n} // 删除\n\nfunction crmStrategyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/strategy/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N0cmF0ZWd5L3N0cmF0ZWd5LmpzPzhiMjYiXSwibmFtZXMiOlsiY3JtU3RyYXRlZ3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3RyYXRlZ3lTYXZlIiwiY3JtU3RyYXRlZ3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3RyYXRlZ3lVcGRhdGUiLCJwdXRzIiwiY3JtU3RyYXRlZ3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiOGIyNi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdHJhdGVneS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3RyYXRlZ3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3RyYXRlZ3knLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N0cmF0ZWd5LycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0cmF0ZWd5VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdHJhdGVneS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdHJhdGVneURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N0cmF0ZWd5L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8b26\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"8d36":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmAreaIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmAreaSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmAreaRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmAreaUpdate; });\n/* unused harmony export crmAreaDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmAreaIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area/list\', data);\n} // 创建\n\nfunction crmAreaSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area\', data);\n} // 根据id获取\n\nfunction crmAreaRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/area/\' + id);\n} // 根据id修改\n\nfunction crmAreaUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/area/\' + id, data);\n} // 删除\n\nfunction crmAreaDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/area/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2FyZWEvYXJlYS5qcz84ZDM2Il0sIm5hbWVzIjpbImNybUFyZWFJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQXJlYVNhdmUiLCJjcm1BcmVhUmVhZCIsImlkIiwiZ2V0cyIsImNybUFyZWFVcGRhdGUiLCJwdXRzIiwiY3JtQXJlYURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiI4ZDM2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYXJlYS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9hcmVhJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1BcmVhUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2FyZWEvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQXJlYVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvYXJlYS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1BcmVhRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYXJlYS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8d36\n')},"8d6c":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d298");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_593e4c66_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlP2E2ZTAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBIiwiZmlsZSI6IjhkNmMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/P3JlZi0tOS1vbmVPZi0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9zcmMvaW5kZXguanM/P3JlZi0tOS1vbmVPZi0xLTIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Nhc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0zIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTU5M2U0YzY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8d6c\n')},"8e88":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmUomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmUomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmUomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmUomUpdate; });\n/* unused harmony export crmUomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmUomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom/list\', data);\n} // 创建\n\nfunction crmUomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom\', data);\n} // 根据id获取\n\nfunction crmUomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/uom/\' + id);\n} // 根据id修改\n\nfunction crmUomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/uom/\' + id, data);\n} // 删除\n\nfunction crmUomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/uom/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3VvbS91b20uanM/OGU4OCJdLCJuYW1lcyI6WyJjcm1Vb21JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtVW9tU2F2ZSIsImNybVVvbVJlYWQiLCJpZCIsImdldHMiLCJjcm1Vb21VcGRhdGUiLCJwdXRzIiwiY3JtVW9tRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6IjhlODguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3VvbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3VvbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVW9tUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3VvbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Vb21EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS91b20vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///8e88\n')},"928a":function(module){eval('module.exports = JSON.parse("{\\"leads\\":{\\"name\\":\\"公司\\",\\"type\\":\\"leads\\"},\\"strategy\\":{\\"name\\":\\"策略\\",\\"type\\":\\"strategy\\"},\\"rule\\":{\\"name\\":\\"规则\\",\\"type\\":\\"rule\\"},\\"strategyRules\\":{\\"name\\":\\"策略规则\\",\\"type\\":\\"strategyRules\\"},\\"org\\":{\\"name\\":\\"组织\\",\\"type\\":\\"org\\"},\\"uom\\":{\\"name\\":\\"计量单位\\",\\"type\\":\\"uom\\"},\\"uomGroup\\":{\\"name\\":\\"计量单位组\\",\\"type\\":\\"uomGroup\\"},\\"slg\\":{\\"name\\":\\"库位组\\",\\"type\\":\\"slg\\"},\\"item\\":{\\"name\\":\\"物品\\",\\"type\\":\\"item\\"},\\"slgItem\\":{\\"name\\":\\"库位组物品\\",\\"type\\":\\"slgItem\\"},\\"verification\\":{\\"name\\":\\"验证\\",\\"type\\":\\"verification\\"},\\"stage\\":{\\"name\\":\\"步骤\\",\\"type\\":\\"stage\\"},\\"area\\":{\\"name\\":\\"区域\\",\\"type\\":\\"area\\"},\\"areaItem\\":{\\"name\\":\\"区域物品\\",\\"type\\":\\"areaItem\\"},\\"currency\\":{\\"name\\":\\"货币\\",\\"type\\":\\"currency\\"},\\"currencyExchange\\":{\\"name\\":\\"货币换算\\",\\"type\\":\\"currencyExchange\\"},\\"customer\\":{\\"name\\":\\"客户\\",\\"type\\":\\"customer\\"},\\"customerBom\\":{\\"name\\":\\"客户物品产品结构\\",\\"type\\":\\"customerBom\\"},\\"customerItem\\":{\\"name\\":\\"客户物品\\",\\"type\\":\\"customerItem\\"},\\"eqptType\\":{\\"name\\":\\"器具类型\\",\\"type\\":\\"eqptType\\"},\\"eqptTypeItem\\":{\\"name\\":\\"器具类型物品\\",\\"type\\":\\"eqptTypeItem\\"},\\"itemTransTypeInventoryRoute\\":{\\"name\\":\\"物品事务类型物流路线分配\\",\\"type\\":\\"itemTransTypeInventoryRoute\\"},\\"itemTransTypeOpStrategy\\":{\\"name\\":\\"物品事务类型工序策略分配\\",\\"type\\":\\"itemTransTypeOpStrategy\\"},\\"loc\\":{\\"name\\":\\"库位\\",\\"type\\":\\"loc\\"},\\"machine\\":{\\"name\\":\\"机器\\",\\"type\\":\\"machine\\"},\\"param\\":{\\"name\\":\\"参数\\",\\"type\\":\\"param\\"},\\"port\\":{\\"name\\":\\"收货口\\",\\"type\\":\\"port\\"},\\"prodLine\\":{\\"name\\":\\"生产线\\",\\"type\\":\\"prodLine\\"},\\"prodLineItem\\":{\\"name\\":\\"生产线物品\\",\\"type\\":\\"prodLineItem\\"},\\"project\\":{\\"name\\":\\"项目\\",\\"type\\":\\"project\\"},\\"shift\\":{\\"name\\":\\"班次\\",\\"type\\":\\"shift\\"},\\"supplier\\":{\\"name\\":\\"供应商\\",\\"type\\":\\"supplier\\"},\\"supplierItem\\":{\\"name\\":\\"供应商物品\\",\\"type\\":\\"supplierItem\\"},\\"team\\":{\\"name\\":\\"班组\\",\\"type\\":\\"team\\"},\\"uomConversion\\":{\\"name\\":\\"计量单位转换\\",\\"type\\":\\"uomConversion\\"},\\"purchaseUomConversion\\":{\\"name\\":\\"采购计量单位转换\\",\\"type\\":\\"purchaseUomConversion\\"},\\"productionUomConversion\\":{\\"name\\":\\"生产计量单位转换\\",\\"type\\":\\"productionUomConversion\\"},\\"stockUomConversion\\":{\\"name\\":\\"库存计量单位转换\\",\\"type\\":\\"stockUomConversion\\"},\\"sellUomConversion\\":{\\"name\\":\\"销售计量单位转换\\",\\"type\\":\\"sellUomConversion\\"},\\"wlg\\":{\\"name\\":\\"工作组\\",\\"type\\":\\"wlg\\"},\\"wlgItem\\":{\\"name\\":\\"工作组物品\\",\\"type\\":\\"wlgItem\\"},\\"workCalendar\\":{\\"name\\":\\"工作日历\\",\\"type\\":\\"workCalendar\\"},\\"workCenter\\":{\\"name\\":\\"工作中心\\",\\"type\\":\\"workCenter\\"},\\"bom\\":{\\"name\\":\\"产品结构\\",\\"type\\":\\"bom\\"},\\"stdCostPriceSheet\\":{\\"name\\":\\"标准成本价格单\\",\\"type\\":\\"StdCostPriceSheet\\"},\\"stdCostPriceDetail\\":{\\"name\\":\\"标准成本价格单明细\\",\\"type\\":\\"StdCostPriceDetail\\"},\\"inventoryRoute\\":{\\"name\\":\\"物流路线\\",\\"type\\":\\"InventoryRoute\\"},\\"inventoryRouteDetail\\":{\\"name\\":\\"物流路线明细\\",\\"type\\":\\"InventoryRouteDetail\\"},\\"purchasePriceSheet\\":{\\"name\\":\\"采购价格单\\",\\"type\\":\\"PurchasePriceSheet\\"},\\"purchasePriceDetail\\":{\\"name\\":\\"采购价格单明细\\",\\"type\\":\\"PurchasePriceDetail\\"},\\"route\\":{\\"name\\":\\"工艺路线\\",\\"type\\":\\"Route\\"},\\"routeDetail\\":{\\"name\\":\\"工艺路线明细\\",\\"type\\":\\"RouteDetail\\"},\\"salePriceSheet\\":{\\"name\\":\\"销售价格单\\",\\"type\\":\\"SalePriceSheet\\"},\\"salePriceDetail\\":{\\"name\\":\\"销售价格单明细\\",\\"type\\":\\"SalePriceDetail\\"},\\"dicts\\":{\\"name\\":\\"字典\\",\\"type\\":\\"Dict\\"},\\"dictssub\\":{\\"name\\":\\"字典项\\",\\"type\\":\\"dictssub\\"},\\"transaction\\":{\\"name\\":\\"事务类型\\",\\"type\\":\\"transaction\\"},\\"verificationStages\\":{\\"name\\":\\"验证步骤配置\\",\\"type\\":\\"verificationStages\\"},\\"interfaceCalendar\\":{\\"name\\":\\"接口日历\\",\\"type\\":\\"interfaceCalendar\\"}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiI5MjhhLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///928a\n')},"96c3":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony default export */ __webpack_exports__["a"] = ({\n leads: 1,\n customer: 2,\n contacts: 3,\n product: 4,\n business: 5,\n contract: 6,\n receivables: 7,\n // 公海 8\n receivables_plan: 8,\n pool: 9\n});\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsLmpzPzk2YzMiXSwibmFtZXMiOlsibGVhZHMiLCJjdXN0b21lciIsImNvbnRhY3RzIiwicHJvZHVjdCIsImJ1c2luZXNzIiwiY29udHJhY3QiLCJyZWNlaXZhYmxlcyIsInJlY2VpdmFibGVzX3BsYW4iLCJwb29sIl0sIm1hcHBpbmdzIjoiQUFBZTtBQUNiQSxPQUFLLEVBQUUsQ0FETTtBQUViQyxVQUFRLEVBQUUsQ0FGRztBQUdiQyxVQUFRLEVBQUUsQ0FIRztBQUliQyxTQUFPLEVBQUUsQ0FKSTtBQUtiQyxVQUFRLEVBQUUsQ0FMRztBQU1iQyxVQUFRLEVBQUUsQ0FORztBQU9iQyxhQUFXLEVBQUUsQ0FQQTtBQVFiO0FBQ0FDLGtCQUFnQixFQUFFLENBVEw7QUFVYkMsTUFBSSxFQUFFO0FBVk8sQ0FBZiIsImZpbGUiOiI5NmMzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxlYWRzOiAxLFxyXG4gIGN1c3RvbWVyOiAyLFxyXG4gIGNvbnRhY3RzOiAzLFxyXG4gIHByb2R1Y3Q6IDQsXHJcbiAgYnVzaW5lc3M6IDUsXHJcbiAgY29udHJhY3Q6IDYsXHJcbiAgcmVjZWl2YWJsZXM6IDcsXHJcbiAgLy8g5YWs5rW3IDhcclxuICByZWNlaXZhYmxlc19wbGFuOiA4LFxyXG4gIHBvb2w6IDlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///96c3\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},"97d9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmInventoryRouteIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return crmInventoryRouteSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return crmInventoryRouteRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return crmInventoryRouteUpdate; });\n/* unused harmony export crmInventoryRouteDelete */\n/* unused harmony export crmInventoryRouteDetailListRead */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmInventoryRouteDetailRead; });\n/* unused harmony export crmInventoryRouteDetailIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmInventoryRouteDetailAdd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmInventoryRouteDetailUpdate; });\n/* unused harmony export crmInventoryRouteDetailDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmInventoryRouteIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/list\', data);\n} // 创建\n\nfunction crmInventoryRouteSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route\', data);\n} // 根据id获取 crmInventoryRouteRead\n\nfunction crmInventoryRouteRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id);\n} // 根据id修改\n\nfunction crmInventoryRouteUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/inventory-route/\' + id, data);\n} // 删除\n\nfunction crmInventoryRouteDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/delete\', data);\n} //获取子项列表\n\nfunction crmInventoryRouteDetailListRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id + \'/details\');\n} //按照主表ID和子表ID获取子项详细信息\n\nfunction crmInventoryRouteDetailRead(id, detailId) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/inventory-route/\' + id + \'/details/\' + detailId);\n} //按筛选条件获取子项列表\n\nfunction crmInventoryRouteDetailIndex(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details\', data);\n} //新增子项\n\nfunction crmInventoryRouteDetailAdd(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/add\', data);\n} //修改子项\n\nfunction crmInventoryRouteDetailUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/update\', data);\n} //删除子项\n\nfunction crmInventoryRouteDetailDelete(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/inventory-route/\' + id + \'/details/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2ludmVudG9yeVJvdXRlL2ludmVudG9yeVJvdXRlLmpzPzk3ZDkiXSwibmFtZXMiOlsiY3JtSW52ZW50b3J5Um91dGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSW52ZW50b3J5Um91dGVTYXZlIiwiY3JtSW52ZW50b3J5Um91dGVSZWFkIiwiaWQiLCJnZXRzIiwiY3JtSW52ZW50b3J5Um91dGVVcGRhdGUiLCJwdXRzIiwiY3JtSW52ZW50b3J5Um91dGVEZWxldGUiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbExpc3RSZWFkIiwiY3JtSW52ZW50b3J5Um91dGVEZXRhaWxSZWFkIiwiZGV0YWlsSWQiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbEluZGV4IiwiY3JtSW52ZW50b3J5Um91dGVEZXRhaWxBZGQiLCJjcm1JbnZlbnRvcnlSb3V0ZURldGFpbFVwZGF0ZSIsImNybUludmVudG9yeVJvdXRlRGV0YWlsRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxzQkFBVCxDQUFnQ0MsSUFBaEMsRUFBc0M7QUFDM0MsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLHFCQUFULENBQStCSCxJQUEvQixFQUFxQztBQUMxQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksK0JBQVosRUFBNENGLElBQTVDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0kscUJBQVQsQ0FBK0JDLEVBQS9CLEVBQW1DO0FBQ3hDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxtQ0FBaUNELEVBQTVDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsdUJBQVQsQ0FBaUNGLEVBQWpDLEVBQW9DTCxJQUFwQyxFQUEwQztBQUMvQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsbUNBQWlDSCxFQUE1QyxFQUErQ0wsSUFBL0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyx1QkFBVCxDQUFpQ1QsSUFBakMsRUFBdUM7QUFDNUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHNDQUFaLEVBQW1ERixJQUFuRCxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNVLCtCQUFULENBQXlDTCxFQUF6QyxFQUE2QztBQUNsRCxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsbUNBQWlDRCxFQUFqQyxHQUFvQyxVQUEvQyxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNNLDJCQUFULENBQXFDTixFQUFyQyxFQUF3Q08sUUFBeEMsRUFBa0Q7QUFDdkQsU0FBT1gsNERBQUssQ0FBQ0ssSUFBTixDQUFXLG1DQUFpQ0QsRUFBakMsR0FBb0MsV0FBcEMsR0FBZ0RPLFFBQTNELENBQVA7QUFDRCxDLENBRUQ7O0FBQ08sU0FBU0MsNEJBQVQsQ0FBc0NSLEVBQXRDLEVBQXlDTCxJQUF6QyxFQUErQztBQUNwRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksbUNBQWlDRyxFQUFqQyxHQUFvQyxVQUFoRCxFQUEyREwsSUFBM0QsQ0FBUDtBQUNELEMsQ0FFRDs7QUFDTyxTQUFTYywwQkFBVCxDQUFvQ1QsRUFBcEMsRUFBdUNMLElBQXZDLEVBQTZDO0FBQ2xELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBaUNHLEVBQWpDLEdBQW9DLGNBQWhELEVBQStETCxJQUEvRCxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNlLDZCQUFULENBQXVDVixFQUF2QyxFQUEwQ0wsSUFBMUMsRUFBZ0Q7QUFDckQsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFpQ0csRUFBakMsR0FBb0MsaUJBQWhELEVBQWtFTCxJQUFsRSxDQUFQO0FBQ0QsQyxDQUVEOztBQUNPLFNBQVNnQiw2QkFBVCxDQUF1Q1gsRUFBdkMsRUFBMENMLElBQTFDLEVBQWdEO0FBQ3JELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxtQ0FBaUNHLEVBQWpDLEdBQW9DLGlCQUFoRCxFQUFrRUwsSUFBbEUsQ0FBUDtBQUNEIiwiZmlsZSI6Ijk3ZDkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5YgICAgY3JtSW52ZW50b3J5Um91dGVSZWFkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSW52ZW50b3J5Um91dGVVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS9kZWxldGUnLGRhdGEpXHJcbn1cclxuXHJcbi8v6I635Y+W5a2Q6aG55YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbExpc3RSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlLycraWQrJy9kZXRhaWxzJylcclxufVxyXG5cclxuLy/mjInnhafkuLvooahJROWSjOWtkOihqElE6I635Y+W5a2Q6aG56K+m57uG5L+h5oGvXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbFJlYWQoaWQsZGV0YWlsSWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMvJytkZXRhaWxJZClcclxufVxyXG5cclxuLy/mjInnrZvpgInmnaHku7bojrflj5blrZDpobnliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUludmVudG9yeVJvdXRlRGV0YWlsSW5kZXgoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMnLGRhdGEpXHJcbn1cclxuXHJcbi8v5paw5aKe5a2Q6aG5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JbnZlbnRvcnlSb3V0ZURldGFpbEFkZChpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2ludmVudG9yeS1yb3V0ZS8nK2lkKycvZGV0YWlscy9hZGQnLGRhdGEpXHJcbn1cclxuIFxyXG4vL+S/ruaUueWtkOmhuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSW52ZW50b3J5Um91dGVEZXRhaWxVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pbnZlbnRvcnktcm91dGUvJytpZCsnL2RldGFpbHMvdXBkYXRlJyxkYXRhKVxyXG59XHJcbiBcclxuLy/liKDpmaTlrZDpoblcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUludmVudG9yeVJvdXRlRGV0YWlsRGVsZXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaW52ZW50b3J5LXJvdXRlLycraWQrJy9kZXRhaWxzL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///97d9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a20b:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSlgIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSlgSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSlgRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSlgUpdate; });\n/* unused harmony export crmSlgDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSlgIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg/list\', data);\n} // 创建\n\nfunction crmSlgSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg\', data);\n} // 根据id获取\n\nfunction crmSlgRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/slg/\' + id);\n} // 根据id修改\n\nfunction crmSlgUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/slg/\' + id, data);\n} // 删除\n\nfunction crmSlgDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/slg/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3NsZy9zbGcuanM/YTIwYiJdLCJuYW1lcyI6WyJjcm1TbGdJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU2xnU2F2ZSIsImNybVNsZ1JlYWQiLCJpZCIsImdldHMiLCJjcm1TbGdVcGRhdGUiLCJwdXRzIiwiY3JtU2xnRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6ImEyMGIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NsZy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2xnU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3NsZycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU2xnUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3NsZy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3NsZy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TbGdEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zbGcvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a20b\n')},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a537:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProdLineIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProdLineSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProdLineRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProdLineUpdate; });\n/* unused harmony export crmProdLineDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.ProdLine;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmProdLineIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/prodLine/list\',data)\n} // 创建\n\nfunction crmProdLineSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/prodLine\',data)\n} //根据id获取单条数据\n\nfunction crmProdLineRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/prodLine/\'+id)\n} // 根据id修改\n\nfunction crmProdLineUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/prodLine/\'+id,data)\n} // 删除\n\nfunction crmProdLineDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/prodLine/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2RMaW5lL3Byb2RMaW5lLmpzP2E1MzciXSwibmFtZXMiOlsiYXBpIiwiYXBpQ29uZmlnIiwicm91dGVyIiwiYXBpUm91dGUiLCJtb2R1bGUiLCJtb2R1bGVzIiwiTWFudWZhY3R1cmUiLCJjcm1UeXBlIiwiY3JtVHlwZXMiLCJQcm9kTGluZSIsImZ1bmNzIiwiY3JtUHJvZExpbmVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiTGlzdEZ1bmMiLCJjcm1Qcm9kTGluZVNhdmUiLCJjcm1Qcm9kTGluZVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVByb2RMaW5lVXBkYXRlIiwicHV0cyIsImNybVByb2RMaW5lRGVsZXRlIiwiRGVsZXRlRnVuYyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFFQSxJQUFNQSxHQUFHLEdBQUVDLDJDQUFTLENBQUNDLE1BQVYsQ0FBaUJDLFFBQTVCO0FBQ0EsSUFBTUMsTUFBTSxHQUFFSCwyQ0FBUyxDQUFDSSxPQUFWLENBQWtCQyxXQUFoQztBQUNBLElBQU1DLE9BQU8sR0FBQ04sMkNBQVMsQ0FBQ08sUUFBVixDQUFtQkMsUUFBakM7QUFDQSxJQUFNQyxLQUFLLEdBQUNULDJDQUFTLENBQUNTLEtBQXRCLEMsQ0FFQTs7QUFDTyxTQUFTQyxnQkFBVCxDQUEwQkMsSUFBMUIsRUFBZ0M7QUFDckMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURxQyxDQUVyQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxlQUFULENBQXlCSixJQUF6QixFQUErQjtBQUNwQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxlQUFULENBQXlCQyxFQUF6QixFQUE2QjtBQUNsQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURrQyxDQUVsQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxpQkFBVCxDQUEyQkgsRUFBM0IsRUFBOEJOLElBQTlCLEVBQW9DO0FBQ3pDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUR5QyxDQUV6QztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxpQkFBVCxDQUEyQlgsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQURzQyxDQUV0QztBQUNEIiwiZmlsZSI6ImE1MzcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLlByb2RMaW5lO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZScsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcHJvZExpbmUvZGVsZXRlJyxkYXRhKVxyXG59XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a537\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},aabf:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemUpdate; });\n/* unused harmony export crmItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item/list\', data);\n} // 创建\n\nfunction crmItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item\', data);\n} // 根据id获取\n\nfunction crmItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item/\' + id);\n} // 根据id修改\n\nfunction crmItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item/\' + id, data);\n} // 删除\n\nfunction crmItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW0vaXRlbS5qcz9hYWJmIl0sIm5hbWVzIjpbImNybUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVNhdmUiLCJjcm1JdGVtUmVhZCIsImlkIiwiZ2V0cyIsImNybUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtSXRlbURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJhYWJmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9pdGVtJyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0vJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///aabf\n')},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b490:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmParamIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmParamSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmParamRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmParamUpdate; });\n/* unused harmony export crmParamDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmParamIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param/list\', data);\n} // 创建\n\nfunction crmParamSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param\', data);\n} // 根据id获取\n\nfunction crmParamRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/param/\' + id);\n} // 根据id修改\n\nfunction crmParamUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/param/\' + id, data);\n} // 删除\n\nfunction crmParamDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/param/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3BhcmFtL3BhcmFtLmpzP2I0OTAiXSwibmFtZXMiOlsiY3JtUGFyYW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUGFyYW1TYXZlIiwiY3JtUGFyYW1SZWFkIiwiaWQiLCJnZXRzIiwiY3JtUGFyYW1VcGRhdGUiLCJwdXRzIiwiY3JtUGFyYW1EZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxZQUFULENBQXNCSCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkscUJBQVosRUFBa0NGLElBQWxDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksWUFBVCxDQUFzQkMsRUFBdEIsRUFBMEI7QUFDL0IsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHlCQUF1QkQsRUFBbEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxjQUFULENBQXdCRixFQUF4QixFQUEyQkwsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHlCQUF1QkgsRUFBbEMsRUFBcUNMLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsY0FBVCxDQUF3QlQsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QiLCJmaWxlIjoiYjQ5MC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wYXJhbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUGFyYW1TYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcGFyYW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3BhcmFtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVBhcmFtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wYXJhbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1QYXJhbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3BhcmFtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///b490\n')},b654:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmItemTransTypeOpStrategyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmItemTransTypeOpStrategySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmItemTransTypeOpStrategyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmItemTransTypeOpStrategyUpdate; });\n/* unused harmony export crmItemTransTypeOpStrategyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmItemTransTypeOpStrategyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy/list\', data);\n} // 创建\n\nfunction crmItemTransTypeOpStrategySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy\', data);\n} // 根据id获取\n\nfunction crmItemTransTypeOpStrategyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/item-trans-type-op-strategy/\' + id);\n} // 根据id修改\n\nfunction crmItemTransTypeOpStrategyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/item-trans-type-op-strategy/\' + id, data);\n} // 删除\n\nfunction crmItemTransTypeOpStrategyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/item-trans-type-op-strategy/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2l0ZW1UcmFuc1R5cGVPcFN0cmF0ZWd5L2l0ZW1UcmFuc1R5cGVPcFN0cmF0ZWd5LmpzP2I2NTQiXSwibmFtZXMiOlsiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lTYXZlIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lVcGRhdGUiLCJwdXRzIiwiY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLCtCQUFULENBQXlDQyxJQUF6QyxFQUErQztBQUNwRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksZ0RBQVosRUFBNkRGLElBQTdELENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csOEJBQVQsQ0FBd0NILElBQXhDLEVBQThDO0FBQ25ELFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwyQ0FBWixFQUF3REYsSUFBeEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSw4QkFBVCxDQUF3Q0MsRUFBeEMsRUFBNEM7QUFDakQsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLCtDQUE2Q0QsRUFBeEQsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxnQ0FBVCxDQUEwQ0YsRUFBMUMsRUFBNkNMLElBQTdDLEVBQW1EO0FBQ3hELFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVywrQ0FBNkNILEVBQXhELEVBQTJETCxJQUEzRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLGdDQUFULENBQTBDVCxJQUExQyxFQUFnRDtBQUNyRCxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksa0RBQVosRUFBK0RGLElBQS9ELENBQVA7QUFDRCIsImZpbGUiOiJiNjU0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvaXRlbS10cmFucy10eXBlLW9wLXN0cmF0ZWd5JyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlT3BTdHJhdGVneVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9pdGVtLXRyYW5zLXR5cGUtb3Atc3RyYXRlZ3kvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtSXRlbVRyYW5zVHlwZU9wU3RyYXRlZ3lVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1JdGVtVHJhbnNUeXBlT3BTdHJhdGVneURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2l0ZW0tdHJhbnMtdHlwZS1vcC1zdHJhdGVneS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///b654\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},b758:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmEqptTypeItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmEqptTypeItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmEqptTypeItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmEqptTypeItemUpdate; });\n/* unused harmony export crmEqptTypeItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmEqptTypeItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item/list\', data);\n} // 创建\n\nfunction crmEqptTypeItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item\', data);\n} // 根据id获取\n\nfunction crmEqptTypeItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/eqpt-type-item/\' + id);\n} // 根据id修改\n\nfunction crmEqptTypeItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/eqpt-type-item/\' + id, data);\n} // 删除\n\nfunction crmEqptTypeItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2VxcHRUeXBlSXRlbS9lcXB0VHlwZUl0ZW0uanM/Yjc1OCJdLCJuYW1lcyI6WyJjcm1FcXB0VHlwZUl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtRXFwdFR5cGVJdGVtU2F2ZSIsImNybUVxcHRUeXBlSXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1FcXB0VHlwZUl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtRXFwdFR5cGVJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1DQUFaLEVBQWdERixJQUFoRCxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxrQ0FBZ0NELEVBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsa0NBQWdDSCxFQUEzQyxFQUE4Q0wsSUFBOUMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHFDQUFaLEVBQWtERixJQUFsRCxDQUFQO0FBQ0QiLCJmaWxlIjoiYjc1OC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUtaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVJdGVtUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2VxcHQtdHlwZS1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b758\n')},b9f0:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCurrencyIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCurrencySave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCurrencyRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCurrencyUpdate; });\n/* unused harmony export crmCurrencyDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCurrencyIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency/list\', data);\n} // 创建\n\nfunction crmCurrencySave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency\', data);\n} // 根据id获取\n\nfunction crmCurrencyRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/currency/\' + id);\n} // 根据id修改\n\nfunction crmCurrencyUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/currency/\' + id, data);\n} // 删除\n\nfunction crmCurrencyDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/currency/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1cnJlbmN5L2N1cnJlbmN5LmpzP2I5ZjAiXSwibmFtZXMiOlsiY3JtQ3VycmVuY3lJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VycmVuY3lTYXZlIiwiY3JtQ3VycmVuY3lSZWFkIiwiaWQiLCJnZXRzIiwiY3JtQ3VycmVuY3lVcGRhdGUiLCJwdXRzIiwiY3JtQ3VycmVuY3lEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiYjlmMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5SW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VycmVuY3lTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VycmVuY3knLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2N1cnJlbmN5LycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1cnJlbmN5VXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9jdXJyZW5jeS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXJyZW5jeURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1cnJlbmN5L2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///b9f0\n')},bb9a:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export filedGetField */\n/* unused harmony export crmSettingRecordListAPI */\n/* unused harmony export filedGetInformation */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return filterIndexfields; });\n/* unused harmony export crmSceneIndex */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return crmOrgIndex; });\n/* harmony import */ var _utils_request__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"b775\");\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"eeb9\");\n //ux获取列表字段接口使用MOCK\n\nfunction filedGetField() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/queryField',\n method: 'get'\n });\n}\n/**\r\n * 记录类型 数据 与系统设置系统(repeat)\r\n */\n\nfunction crmSettingRecordListAPI() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/queryRecordOptions',\n method: 'get'\n });\n}\n/**\r\n * 详情页基本信息\r\n * @param {*} data\r\n */\n\nfunction filedGetInformation(data) {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/information',\n method: 'get',\n params: data\n });\n} // crm 自定义字段(高级筛选)\n\nfunction filterIndexfields(data) {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/ux/scene/queryField',\n method: 'get',\n params: data\n });\n}\nfunction crmSceneIndex() {\n return Object(_utils_request__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"])({\n url: '/vue-element-admin/system/scene/getAllsceneList',\n method: 'get'\n });\n}\n\n/*axios*/\n\nfunction crmOrgIndex() {\n return _axios_index__WEBPACK_IMPORTED_MODULE_1__[/* default */ \"a\"].gets('/api/base/userbranch/current/branches');\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3V4L2NvbW1vbi5qcz9iYjlhIl0sIm5hbWVzIjpbImZpbGVkR2V0RmllbGQiLCJyZXF1ZXN0IiwidXJsIiwibWV0aG9kIiwiY3JtU2V0dGluZ1JlY29yZExpc3RBUEkiLCJmaWxlZEdldEluZm9ybWF0aW9uIiwiZGF0YSIsInBhcmFtcyIsImZpbHRlckluZGV4ZmllbGRzIiwiY3JtU2NlbmVJbmRleCIsImNybU9yZ0luZGV4IiwiYXhpb3MiLCJnZXRzIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsYUFBVCxHQUF5QjtBQUM5QixTQUFPQyxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSxrQ0FEUTtBQUViQyxVQUFNLEVBQUU7QUFGSyxHQUFELENBQWQ7QUFJRDtBQUNEO0FBQ0E7QUFDQTs7QUFDTyxTQUFTQyx1QkFBVCxHQUFtQztBQUN4QyxTQUFPSCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSwwQ0FEUTtBQUViQyxVQUFNLEVBQUU7QUFGSyxHQUFELENBQWQ7QUFJRDtBQUNEO0FBQ0E7QUFDQTtBQUNBOztBQUNPLFNBQVNFLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQztBQUN4QyxTQUFPTCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSxtQ0FEUTtBQUViQyxVQUFNLEVBQUUsS0FGSztBQUdiSSxVQUFNLEVBQUVEO0FBSEssR0FBRCxDQUFkO0FBS0QsQyxDQUNEOztBQUNPLFNBQVNFLGlCQUFULENBQTJCRixJQUEzQixFQUFpQztBQUN0QyxTQUFPTCxzRUFBTyxDQUFDO0FBQ2JDLE9BQUcsRUFBRSx3Q0FEUTtBQUViQyxVQUFNLEVBQUUsS0FGSztBQUdiSSxVQUFNLEVBQUVEO0FBSEssR0FBRCxDQUFkO0FBS0Q7QUFDTSxTQUFTRyxhQUFULEdBQXlCO0FBQzlCLFNBQU9SLHNFQUFPLENBQUM7QUFDYkMsT0FBRyxFQUFFLGlEQURRO0FBRWJDLFVBQU0sRUFBRTtBQUZLLEdBQUQsQ0FBZDtBQUlEO0FBQ0Q7QUFDQTs7QUFDTyxTQUFTTyxXQUFULEdBQXVCO0FBQzVCLFNBQU9DLDREQUFLLENBQUNDLElBQU4sQ0FBVyx1Q0FBWCxDQUFQO0FBQ0QiLCJmaWxlIjoiYmI5YS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByZXF1ZXN0IGZyb20gJ0AvdXRpbHMvcmVxdWVzdCdcclxuLy91eOiOt+WPluWIl+ihqOWtl+auteaOpeWPo+S9v+eUqE1PQ0tcclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGVkR2V0RmllbGQoKSB7XHJcbiAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgdXJsOiAnL3Z1ZS1lbGVtZW50LWFkbWluL3V4L3F1ZXJ5RmllbGQnLFxyXG4gICAgbWV0aG9kOiAnZ2V0J1xyXG4gIH0pXHJcbn1cclxuLyoqXHJcbiAqIOiusOW9leexu+WeiyDmlbDmja4g5LiO57O757uf6K6+572u57O757ufKHJlcGVhdClcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TZXR0aW5nUmVjb3JkTGlzdEFQSSgpIHtcclxuICByZXR1cm4gcmVxdWVzdCh7XHJcbiAgICB1cmw6ICcvdnVlLWVsZW1lbnQtYWRtaW4vdXgvcXVlcnlSZWNvcmRPcHRpb25zJyxcclxuICAgIG1ldGhvZDogJ2dldCdcclxuICB9KVxyXG59XHJcbi8qKlxyXG4gKiDor6bmg4XpobXln7rmnKzkv6Hmga9cclxuICogQHBhcmFtIHsqfSBkYXRhXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmlsZWRHZXRJbmZvcm1hdGlvbihkYXRhKSB7XHJcbiAgcmV0dXJuIHJlcXVlc3Qoe1xyXG4gICAgdXJsOiAnL3Z1ZS1lbGVtZW50LWFkbWluL3V4L2luZm9ybWF0aW9uJyxcclxuICAgIG1ldGhvZDogJ2dldCcsXHJcbiAgICBwYXJhbXM6IGRhdGFcclxuICB9KVxyXG59XHJcbi8vIGNybSDoh6rlrprkuYnlrZfmrrUo6auY57qn562b6YCJKVxyXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVySW5kZXhmaWVsZHMoZGF0YSkge1xyXG4gIHJldHVybiByZXF1ZXN0KHtcclxuICAgIHVybDogJy92dWUtZWxlbWVudC1hZG1pbi91eC9zY2VuZS9xdWVyeUZpZWxkJyxcclxuICAgIG1ldGhvZDogJ2dldCcsXHJcbiAgICBwYXJhbXM6IGRhdGFcclxuICB9KVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TY2VuZUluZGV4KCkge1xyXG4gIHJldHVybiByZXF1ZXN0KHtcclxuICAgIHVybDogJy92dWUtZWxlbWVudC1hZG1pbi9zeXN0ZW0vc2NlbmUvZ2V0QWxsc2NlbmVMaXN0JyxcclxuICAgIG1ldGhvZDogJ2dldCdcclxuICB9KVxyXG59XHJcbmltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vKmF4aW9zKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNybU9yZ0luZGV4KCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2UvdXNlcmJyYW5jaC9jdXJyZW50L2JyYW5jaGVzJylcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///bb9a\n")},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},ceb4:function(module){eval('module.exports = JSON.parse("{\\"codeSetting\\":{\\"id\\":\\"1\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"项目\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"project\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"值\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"value\\",\\"setting\\":[]}]},\\"materialRelation\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"结算物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settleMaterialCode\\",\\"setting\\":[]}]},\\"centralizedControl\\":{\\"id\\":\\"2\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"年度\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"year\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]}]},\\"material\\":{\\"id\\":\\"3\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"估价类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"estimateType\\",\\"setting\\":[]}]},\\"bomdatabase\\":{\\"id\\":\\"4\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"ERP总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"parentItemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"ERP组件物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"childItemCode\\",\\"setting\\":[]}]},\\"customerStorageLocation\\":{\\"id\\":\\"5\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"存储地点\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"storagelocation\\",\\"setting\\":[]}]},\\"inventorydetail\\":{\\"id\\":\\"6\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"存储地点\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"storageLocation\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"估价类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"appraisalCategory\\",\\"setting\\":[]}]},\\"estimatedSum\\":{\\"id\\":\\"8\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"estimatedInventoryDetail\\":{\\"id\\":\\"9\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"fis\\":{\\"id\\":\\"10\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"底盘开票状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]},{\\"fieldId\\":3,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"底盘结算状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"settleState\\",\\"setting\\":[\\"底盘未结,0\\",\\"底盘部分结算,1\\",\\"底盘已结,2\\"]}]},\\"settleAccount\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"chassisNumber\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"unSettleAccount\\":{\\"id\\":\\"11\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"chassisNumber\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"prebatch\\":{\\"id\\":\\"12\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"KENN号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kennCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"预批量,3\\",\\"其他,0\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"carCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"yearKennCode\\",\\"setting\\":[]}]},\\"secondaryAdjustment\\":{\\"id\\":\\"13\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"fieldName\\":\\"year\\",\\"name\\":\\"年度\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"fieldName\\":\\"period\\",\\"name\\":\\"期间\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"fieldName\\":\\"customerMaterialCode\\",\\"name\\":\\"客户总成物料号\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"fieldName\\":\\"customerComponentCode\\",\\"name\\":\\"客户组件物料号\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"fieldName\\":\\"supplierCode\\",\\"name\\":\\"供应商代码\\",\\"minwidth\\":\\"30%\\",\\"type\\":1,\\"fieldType\\":1,\\"setting\\":[]}]},\\"sendUnsettledDiffReport\\":{\\"id\\":\\"14\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vinCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"status\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\",\\"预批量,3\\"]}]},\\"stockFisDiffReport\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"FIS物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"差异数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"stockUnsettledDiffReport\\":{\\"id\\":\\"15\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"int\\",\\"name\\":\\"数量差异\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"stockSettledDiffReport\\":{\\"id\\":\\"16\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"R3客户物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"数量差异\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"estimatedStockDiffReport\\":{\\"id\\":\\"17\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"itemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"差异数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffQty\\",\\"setting\\":[]}]},\\"secondaryActuralAdjustmentReport\\":{\\"id\\":\\"18\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemDesc\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]}]},\\"secondaryActuralDiffReport\\":{\\"id\\":\\"19\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"factory\\":{\\"id\\":\\"20\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"code\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"描述\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"desc\\",\\"setting\\":[]}]},\\"customerBom\\":{\\"id\\":\\"21\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"customer\\",\\"name\\":\\"客户\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerID\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"item\\",\\"name\\":\\"主物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ParentItemID\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"item\\",\\"name\\":\\"子物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ChildItemID\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"用量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Qty\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"customerItem\\":{\\"id\\":\\"22\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"item\\",\\"name\\":\\"物品\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"ItemID\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"customer\\",\\"name\\":\\"客户\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"CustomerID\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Code\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Description\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"客户物品版本号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Version\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"int\\",\\"name\\":\\"客户物品标包数\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"StdQty\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"uom\\",\\"name\\":\\"客户物品计量单位\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"UomID\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"switch\\",\\"isNull\\":0,\\"name\\":\\"是否可用\\",\\"options\\":\\"1,0\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"Enabled\\",\\"setting\\":[\\"是,true\\",\\"否,false\\"]}]},\\"secondaryPriceRatio\\":{\\"id\\":\\"23\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户总成物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户组件\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customSubItemCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierDesc\\",\\"setting\\":[]}]},\\"materialRelationSupplier\\":{\\"id\\":\\"24\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"ERP供应商代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSupplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"ERP物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpItemCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"客户供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerSupplierCode\\",\\"setting\\":[]}]},\\"btcarseq\\":{\\"id\\":\\"25\\",\\"data\\":[{\\"fieldId\\":37,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"车型代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"barCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]}]},\\"btcarkb\\":{\\"id\\":\\"26\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"物料号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"isNull\\":0,\\"name\\":\\"订单看板编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"orderKBCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"btcarconsign\\":{\\"id\\":\\"27\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"已结,2\\"]}]},\\"jfcarkb\\":{\\"id\\":\\"28\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"单据编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"billNum\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"物料编号\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"jfcarconsign\\":{\\"id\\":\\"29\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":15,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"PA清单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"paBillNum\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"carMaterialConfig\\":{\\"id\\":\\"30\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"车型代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"carCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"发货看板物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]}]},\\"secondaryDiscount\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"standardKanban\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"外部看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"specialKanban\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\",\\"已结,2\\"]}]},\\"standardConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"vin\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"其他,0\\",\\"已结,2\\"]}]},\\"specialConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"版本\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kbCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"其他,0\\",\\"已结,2\\"]}]},\\"standardUnConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"底盘号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\"]}]},\\"specialUnConsign\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"订货看板编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未结,0\\",\\"部分结算,1\\"]}]},\\"HqSecondaryActuralDiffReport\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"客户代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]}]},\\"priceList\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料编号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"version\\",\\"setting\\":[]}]},\\"invoice\\":{\\"id\\":\\"31\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]}]},\\"settlementPart\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"结算物料号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartCode\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]}]},\\"itemInvoicePrice\\":{\\"id\\":\\"32\\",\\"data\\":[{\\"fieldId\\":0,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"销售订单\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"sales\\",\\"setting\\":[]}]},\\"SettlementCrossReference\\":{\\"id\\":\\"34\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"总成结算号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"BOM清单零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"bomMaterialCode\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"采购员\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"buyer\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"适用功能\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"customerCode\\",\\"setting\\":[]}]},\\"EP\\":{\\"id\\":\\"35\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"索引\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"index\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"车型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"model\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"总成结算号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settleMentPartCode\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"BOM清单零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialPartCode\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"采购员\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"buyer\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"BOM用量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"usedNumber\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"text\\",\\"name\\":\\"供货比例[%]\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplyProportion\\",\\"setting\\":[]},{\\"fieldId\\":13,\\"formType\\":\\"text\\",\\"name\\":\\"价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":14,\\"formType\\":\\"text\\",\\"name\\":\\"结算价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPrice\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"单价差\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffPrice\\",\\"setting\\":[]},{\\"fieldId\\":16,\\"formType\\":\\"text\\",\\"name\\":\\"结算件下线数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":17,\\"formType\\":\\"text\\",\\"name\\":\\"理论结算数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"theoreticalSettlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":18,\\"formType\\":\\"text\\",\\"name\\":\\"实际结算数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"realSettlementNumber\\",\\"setting\\":[]},{\\"fieldId\\":19,\\"formType\\":\\"text\\",\\"name\\":\\"实际结算金额\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"realSettlementPrice\\",\\"setting\\":[]},{\\"fieldId\\":20,\\"formType\\":\\"text\\",\\"name\\":\\"是否量差\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"isDiffNumber\\",\\"setting\\":[]},{\\"fieldId\\":21,\\"formType\\":\\"text\\",\\"name\\":\\"差异金额\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"diffAmount\\",\\"setting\\":[]},{\\"fieldId\\":22,\\"formType\\":\\"text\\",\\"name\\":\\"差异原因\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"remark\\",\\"setting\\":[]}]},\\"settlementPartAndSpareParts\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"期间\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"period\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"适用功能\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"applicableFunction\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"结算件编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"结算件描述\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"settlementPartDesc\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"(Erp散件)零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSparePartCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"(Erp散件)零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"erpSparePartName\\",\\"setting\\":[]},{\\"fieldId\\":7,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":8,\\"formType\\":\\"text\\",\\"name\\":\\"QAD代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"qADCode\\",\\"setting\\":[]},{\\"fieldId\\":9,\\"formType\\":\\"text\\",\\"name\\":\\"供应商代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":10,\\"formType\\":\\"text\\",\\"name\\":\\"供应商名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierName\\",\\"setting\\":[]},{\\"fieldId\\":11,\\"formType\\":\\"text\\",\\"name\\":\\"产品类\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"productLine\\",\\"setting\\":[]},{\\"fieldId\\":12,\\"formType\\":\\"text\\",\\"name\\":\\"每车数量\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"perCarNum\\",\\"setting\\":[]},{\\"fieldId\\":13,\\"formType\\":\\"text\\",\\"name\\":\\"单价\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"price\\",\\"setting\\":[]},{\\"fieldId\\":14,\\"formType\\":\\"text\\",\\"name\\":\\"供货比例\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplyProportion\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"辆份价格\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"quantityPrice\\",\\"setting\\":[]}]},\\"vWKanBan\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板条码号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kanban\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"供应商编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"入库结算标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"flag\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"结算状态\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[]}]},\\"WMSKanBan\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":1,\\"formType\\":\\"text\\",\\"name\\":\\"看板条码号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"kanban\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":4,\\"formType\\":\\"text\\",\\"name\\":\\"零件类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"partType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"供应商编码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"supplierCode\\",\\"setting\\":[]},{\\"fieldId\\":6,\\"formType\\":\\"text\\",\\"name\\":\\"入库结算标识\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"flag\\",\\"setting\\":[]},{\\"fieldId\\":15,\\"formType\\":\\"text\\",\\"name\\":\\"结算状态\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"state\\",\\"setting\\":[]}]},\\"scrapClaims\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"类型(报废和索赔)\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"type\\",\\"setting\\":[\\"CP7报废,CP7报废\\",\\"索赔,索赔\\"]},{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"零件名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialDesc\\",\\"setting\\":[]}]},\\"sparePart\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"批次号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"batchNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"wmsSparePart\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购类型\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseType\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"批次号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"batchNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"hqHPlatform\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"科目号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"accountNum\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"hqMPlatform\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"采购订单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"purchaseOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料代码\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"科目号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"accountNum\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"交货单号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"deliveryOrderNo\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factory\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"工厂名称\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"factoryName\\",\\"setting\\":[]}]},\\"vwOutOrder\\":{\\"id\\":\\"36\\",\\"data\\":[{\\"fieldId\\":3,\\"formType\\":\\"text\\",\\"name\\":\\"零件号\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialCode\\",\\"setting\\":[]},{\\"fieldId\\":5,\\"formType\\":\\"text\\",\\"name\\":\\"物料组\\",\\"type\\":1,\\"value\\":\\"\\",\\"fieldType\\":1,\\"fieldName\\":\\"materialGroup\\",\\"setting\\":[]},{\\"fieldId\\":2,\\"formType\\":\\"select\\",\\"isNull\\":0,\\"name\\":\\"状态\\",\\"options\\":\\"\\",\\"type\\":3,\\"value\\":\\"\\",\\"fieldType\\":0,\\"fieldName\\":\\"state\\",\\"setting\\":[\\"未处理,0\\",\\"申请出库,1\\",\\"确认出库,2\\",\\"不能出库,3\\",\\"取消出库,4\\"]}]}}");\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjZWI0LmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ceb4\n')},d1d9:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSupplierItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSupplierItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSupplierItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSupplierItemUpdate; });\n/* unused harmony export crmSupplierItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSupplierItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item/list\', data);\n} // 创建\n\nfunction crmSupplierItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item\', data);\n} // 根据id获取\n\nfunction crmSupplierItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/supplier-item/\' + id);\n} // 根据id修改\n\nfunction crmSupplierItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/supplier-item/\' + id, data);\n} // 删除\n\nfunction crmSupplierItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N1cHBsaWVySXRlbS9zdXBwbGllckl0ZW0uanM/ZDFkOSJdLCJuYW1lcyI6WyJjcm1TdXBwbGllckl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3VwcGxpZXJJdGVtU2F2ZSIsImNybVN1cHBsaWVySXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1TdXBwbGllckl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtU3VwcGxpZXJJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiZDFkOS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXItaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3VwcGxpZXJJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyLWl0ZW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXItaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdXBwbGllckl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci1pdGVtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d1d9\n')},d298:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL3Vua25vd25Bc3NlbWJseS9kZXRhaWwudnVlPzFlN2IiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiZDI5OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///d298\n")},d2fc:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmSupplierIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmSupplierSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmSupplierRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmSupplierUpdate; });\n/* unused harmony export crmSupplierDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmSupplierIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier/list\', data);\n} // 创建\n\nfunction crmSupplierSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier\', data);\n} // 根据id获取\n\nfunction crmSupplierRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/supplier/\' + id);\n} // 根据id修改\n\nfunction crmSupplierUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/supplier/\' + id, data);\n} // 删除\n\nfunction crmSupplierDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/supplier/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N1cHBsaWVyL3N1cHBsaWVyLmpzP2QyZmMiXSwibmFtZXMiOlsiY3JtU3VwcGxpZXJJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3VwcGxpZXJTYXZlIiwiY3JtU3VwcGxpZXJSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3VwcGxpZXJVcGRhdGUiLCJwdXRzIiwiY3JtU3VwcGxpZXJEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHdCQUFaLEVBQXFDRixJQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw0QkFBMEJELEVBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNEJBQTBCSCxFQUFyQyxFQUF3Q0wsSUFBeEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLCtCQUFaLEVBQTRDRixJQUE1QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZDJmYy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3VwcGxpZXJTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3VwcGxpZXInLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVyUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN1cHBsaWVyVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdXBwbGllci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdXBwbGllckRlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N1cHBsaWVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d2fc\n')},d374:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmBomIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmBomSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmBomRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmBomUpdate; });\n/* unused harmony export crmBomDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Bom;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmBomIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/bom/list\',data)\n} // 创建\n\nfunction crmBomSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/bom\',data)\n} //根据id获取单条数据\n\nfunction crmBomRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/bom/\'+id)\n} // 根据id修改\n\nfunction crmBomUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/bom/\'+id,data)\n} // 删除\n\nfunction crmBomDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/bom/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2JvbS9ib20uanM/ZDM3NCJdLCJuYW1lcyI6WyJhcGkiLCJhcGlDb25maWciLCJyb3V0ZXIiLCJhcGlSb3V0ZSIsIm1vZHVsZSIsIm1vZHVsZXMiLCJNYW51ZmFjdHVyZSIsImNybVR5cGUiLCJjcm1UeXBlcyIsIkJvbSIsImZ1bmNzIiwiY3JtQm9tSW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsIkxpc3RGdW5jIiwiY3JtQm9tU2F2ZSIsImNybUJvbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybUJvbVVwZGF0ZSIsInB1dHMiLCJjcm1Cb21EZWxldGUiLCJEZWxldGVGdW5jIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxHQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLFdBQVQsQ0FBcUJDLElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ0ssUUFBckMsRUFBOENILElBQTlDLENBQVAsQ0FEZ0MsQ0FFaEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksVUFBVCxDQUFvQkosSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBdkIsRUFBK0JLLElBQS9CLENBQVAsQ0FEK0IsQ0FFL0I7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ssVUFBVCxDQUFvQkMsRUFBcEIsRUFBd0I7QUFDN0IsU0FBT0wsNERBQUssQ0FBQ00sSUFBTixDQUFXbkIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLENBQVAsQ0FENkIsQ0FFN0I7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csWUFBVCxDQUFzQkgsRUFBdEIsRUFBeUJOLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxZQUFULENBQXNCWCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNjLFVBQXJDLEVBQWdEWixJQUFoRCxDQUFQLENBRGlDLENBRWpDO0FBQ0QiLCJmaWxlIjoiZDM3NC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG5pbXBvcnQgYXBpQ29uZmlnIGZyb20gJ0AvYXBpL2FwaUNvbmZpZydcclxuXHJcbmNvbnN0IGFwaT0gYXBpQ29uZmlnLnJvdXRlci5hcGlSb3V0ZTtcclxuY29uc3QgbW9kdWxlPSBhcGlDb25maWcubW9kdWxlcy5NYW51ZmFjdHVyZTtcclxuY29uc3QgY3JtVHlwZT1hcGlDb25maWcuY3JtVHlwZXMuQm9tO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQm9tSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTGlzdEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9ib20vbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUJvbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9ib20nLGRhdGEpXHJcbn1cclxuLy/moLnmja5pZOiOt+WPluWNleadoeaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQm9tUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZClcclxuICAvL3JldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL2JvbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Cb21VcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvYm9tLycraWQsZGF0YSlcclxufVxyXG4vLyDliKDpmaRcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUJvbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvYm9tL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///d374\n')},d52f:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmPortIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmPortSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmPortRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmPortUpdate; });\n/* unused harmony export crmPortDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmPortIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port/list\', data);\n} // 创建\n\nfunction crmPortSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port\', data);\n} // 根据id获取\n\nfunction crmPortRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/port/\' + id);\n} // 根据id修改\n\nfunction crmPortUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/port/\' + id, data);\n} // 删除\n\nfunction crmPortDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/port/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3BvcnQvcG9ydC5qcz9kNTJmIl0sIm5hbWVzIjpbImNybVBvcnRJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUG9ydFNhdmUiLCJjcm1Qb3J0UmVhZCIsImlkIiwiZ2V0cyIsImNybVBvcnRVcGRhdGUiLCJwdXRzIiwiY3JtUG9ydERlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsd0JBQXNCRCxFQUFqQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGFBQVQsQ0FBdUJGLEVBQXZCLEVBQTBCTCxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsd0JBQXNCSCxFQUFqQyxFQUFvQ0wsSUFBcEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJkNTJmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8vIOiOt+WPluWIl+ihqFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydEluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcG9ydC9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydFNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wb3J0JyxkYXRhKVxyXG59XHJcbi8vIOagueaNrmlk6I635Y+WXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qb3J0UmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3BvcnQvJytpZClcclxufVxyXG4vLyDmoLnmja5pZOS/ruaUuVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUG9ydFVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvcG9ydC8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qb3J0RGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcG9ydC9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d52f\n')},daad:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmCustomerItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmCustomerItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmCustomerItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmCustomerItemUpdate; });\n/* unused harmony export crmCustomerItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmCustomerItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item/list\', data);\n} // 创建\n\nfunction crmCustomerItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item\', data);\n} // 根据id获取\n\nfunction crmCustomerItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/customer-item/\' + id);\n} // 根据id修改\n\nfunction crmCustomerItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/customer-item/\' + id, data);\n} // 删除\n\nfunction crmCustomerItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/customer-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2N1c3RvbWVySXRlbS9jdXN0b21lckl0ZW0uanM/ZGFhZCJdLCJuYW1lcyI6WyJjcm1DdXN0b21lckl0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtQ3VzdG9tZXJJdGVtU2F2ZSIsImNybUN1c3RvbWVySXRlbVJlYWQiLCJpZCIsImdldHMiLCJjcm1DdXN0b21lckl0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtQ3VzdG9tZXJJdGVtRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxvQkFBVCxDQUE4QkMsSUFBOUIsRUFBb0M7QUFDekMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGtDQUFaLEVBQStDRixJQUEvQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLG1CQUFULENBQTZCSCxJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksNkJBQVosRUFBMENGLElBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksbUJBQVQsQ0FBNkJDLEVBQTdCLEVBQWlDO0FBQ3RDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyxpQ0FBK0JELEVBQTFDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UscUJBQVQsQ0FBK0JGLEVBQS9CLEVBQWtDTCxJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsaUNBQStCSCxFQUExQyxFQUE2Q0wsSUFBN0MsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxxQkFBVCxDQUErQlQsSUFBL0IsRUFBcUM7QUFDMUMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG9DQUFaLEVBQWlERixJQUFqRCxDQUFQO0FBQ0QiLCJmaWxlIjoiZGFhZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtQ3VzdG9tZXJJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2N1c3RvbWVyLWl0ZW0nLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1pdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUN1c3RvbWVySXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvY3VzdG9tZXItaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1DdXN0b21lckl0ZW1EZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9jdXN0b21lci1pdGVtL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///daad\n')},de0b:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxMEMyOTg1QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxMEMyOTg2QzBBMzExRThCRjRERkU3Mzg5NDBDQTlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzEwQzI5ODNDMEEzMTFFOEJGNERGRTczODk0MENBOUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzEwQzI5ODRDMEEzMTFFOEJGNERGRTczODk0MENBOUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4G5F1NAAAA5UlEQVR42mJctWpVAwMDQyUQszGQBn4CcRMLkKgC4j9AfJZEA7SBuAZkwEUgNgTiTCA+TaRmJyDeA8SHmIBEERCD6NlAzEKEZj4gng/EH4E4EaTxMBAvB2J9IC4hwoB+IJYD4lQgvs8EFSwD4i9AXAfEKng0+wBxEhDPAOI1DFCng8BTIG4FYk6oJCMWzUJQb4LCrBAmyITmtNtA7AzE8VgMmA7EvEAcAcQ/sBnwE8nkDjTNnUAcBsRZQHwDWYIJTeFWKC2OJl4GpRehO4uJgUIwDAzAlnQ3UWqA/4B7gYEUbwEEGAANECY5RBCuPwAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZz9jZmQ4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTBiLmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBU0NBWUFBQUJTTzE1cUFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN4TUVNeU9UZzFRekJCTXpFeFJUaENSalJFUmtVM016ZzVOREJEUVRsQ0lpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3hNRU15T1RnMlF6QkJNekV4UlRoQ1JqUkVSa1UzTXpnNU5EQkRRVGxDSWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56RXdRekk1T0RORE1FRXpNVEZGT0VKR05FUkdSVGN6T0RrME1FTkJPVUlpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpFd1F6STVPRFJETUVFek1URkZPRUpHTkVSR1JUY3pPRGswTUVOQk9VSWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejRHNUYxTkFBQUE1VWxFUVZSNDJtSmN0V3BWQXdNRFF5VVFzekdRQm40Q2NSTUxrS2dDNGo5QWZKWkVBN1NCdUFaa3dFVWdOZ1RpVENBK1RhUm1KeURlQThTSG1JQkVFUkNENk5sQXpFS0VaajRnbmcvRUg0RTRFYVR4TUJBdkIySjlJQzRod29CK0lKWUQ0bFFndnM4RUZTd0Q0aTlBWEFmRUtuZzArd0J4RWhEUEFPSTFERkNuZzhCVElHNEZZazZvSkNNV3pVSlFiNExDckJBbXlJVG10TnRBN0F6RThWZ01tQTdFdkVBY0FjUS9zQm53RThua0RqVE5uVUFjQnNSWlFId0RXWUlKVGVGV0tDMk9KbDRHcFJlaE80dUpnVUl3REF6QWxuUTNVV3FBLzRCN2dZRVVid0VFR0FBTkVDWTVSQkN1UHdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de0b\n')},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},dea6:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmProdLineItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmProdLineItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmProdLineItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmProdLineItemUpdate; });\n/* unused harmony export crmProdLineItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.ProdLineItem;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmProdLineItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/prodLineItem/list\',data)\n} // 创建\n\nfunction crmProdLineItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/prodLineItem\',data)\n} //根据id获取单条数据\n\nfunction crmProdLineItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/prodLineItem/\'+id)\n} // 根据id修改\n\nfunction crmProdLineItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/prodLineItem/\'+id,data)\n} // 删除\n\nfunction crmProdLineItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/prodLineItem/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3Byb2RMaW5lSXRlbS9wcm9kTGluZUl0ZW0uanM/ZGVhNiJdLCJuYW1lcyI6WyJhcGkiLCJhcGlDb25maWciLCJyb3V0ZXIiLCJhcGlSb3V0ZSIsIm1vZHVsZSIsIm1vZHVsZXMiLCJNYW51ZmFjdHVyZSIsImNybVR5cGUiLCJjcm1UeXBlcyIsIlByb2RMaW5lSXRlbSIsImZ1bmNzIiwiY3JtUHJvZExpbmVJdGVtSW5kZXgiLCJkYXRhIiwiYXhpb3MiLCJwb3N0cyIsIkxpc3RGdW5jIiwiY3JtUHJvZExpbmVJdGVtU2F2ZSIsImNybVByb2RMaW5lSXRlbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVByb2RMaW5lSXRlbVVwZGF0ZSIsInB1dHMiLCJjcm1Qcm9kTGluZUl0ZW1EZWxldGUiLCJEZWxldGVGdW5jIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBLElBQU1BLEdBQUcsR0FBRUMsMkNBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBNUI7QUFDQSxJQUFNQyxNQUFNLEdBQUVILDJDQUFTLENBQUNJLE9BQVYsQ0FBa0JDLFdBQWhDO0FBQ0EsSUFBTUMsT0FBTyxHQUFDTiwyQ0FBUyxDQUFDTyxRQUFWLENBQW1CQyxZQUFqQztBQUNBLElBQU1DLEtBQUssR0FBQ1QsMkNBQVMsQ0FBQ1MsS0FBdEIsQyxDQUVBOztBQUNPLFNBQVNDLG9CQUFULENBQThCQyxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNLLFFBQXJDLEVBQThDSCxJQUE5QyxDQUFQLENBRHlDLENBRXpDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLG1CQUFULENBQTZCSixJQUE3QixFQUFtQztBQUN4QyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQUR3QyxDQUV4QztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxtQkFBVCxDQUE2QkMsRUFBN0IsRUFBaUM7QUFDdEMsU0FBT0wsNERBQUssQ0FBQ00sSUFBTixDQUFXbkIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLENBQVAsQ0FEc0MsQ0FFdEM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0cscUJBQVQsQ0FBK0JILEVBQS9CLEVBQWtDTixJQUFsQyxFQUF3QztBQUM3QyxTQUFPQyw0REFBSyxDQUFDUyxJQUFOLENBQVd0QixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsRUFBZ0ROLElBQWhELENBQVAsQ0FENkMsQ0FFN0M7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1cscUJBQVQsQ0FBK0JYLElBQS9CLEVBQXFDO0FBQzFDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ2MsVUFBckMsRUFBZ0RaLElBQWhELENBQVAsQ0FEMEMsQ0FFMUM7QUFDRCIsImZpbGUiOiJkZWE2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbmltcG9ydCBhcGlDb25maWcgZnJvbSAnQC9hcGkvYXBpQ29uZmlnJ1xyXG5cclxuY29uc3QgYXBpPSBhcGlDb25maWcucm91dGVyLmFwaVJvdXRlO1xyXG5jb25zdCBtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLk1hbnVmYWN0dXJlO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5Qcm9kTGluZUl0ZW07XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcbi8v6I635Y+W5YiX6KGo5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZUl0ZW1JbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5MaXN0RnVuYyxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lSXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJdGVtU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3Byb2RMaW5lSXRlbScsZGF0YSlcclxufVxyXG4vL+agueaNrmlk6I635Y+W5Y2V5p2h5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Qcm9kTGluZUl0ZW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcHJvZExpbmVJdGVtLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVByb2RMaW5lSXRlbVVwZGF0ZShpZCxkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnB1dHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZUl0ZW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUHJvZExpbmVJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkRlbGV0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9wcm9kTGluZUl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///dea6\n')},e024:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWlgIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWlgSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWlgRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWlgUpdate; });\n/* unused harmony export crmWlgDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWlgIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg/list\', data);\n} // 创建\n\nfunction crmWlgSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg\', data);\n} // 根据id获取\n\nfunction crmWlgRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/wlg/\' + id);\n} // 根据id修改\n\nfunction crmWlgUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/wlg/\' + id, data);\n} // 删除\n\nfunction crmWlgDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dsZy93bGcuanM/ZTAyNCJdLCJuYW1lcyI6WyJjcm1XbGdJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV2xnU2F2ZSIsImNybVdsZ1JlYWQiLCJpZCIsImdldHMiLCJjcm1XbGdVcGRhdGUiLCJwdXRzIiwiY3JtV2xnRGVsZXRlIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Q0FDQTs7QUFDTyxTQUFTQSxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksd0JBQVosRUFBcUNGLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csVUFBVCxDQUFvQkgsSUFBcEIsRUFBMEI7QUFDL0IsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLG1CQUFaLEVBQWdDRixJQUFoQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLFVBQVQsQ0FBb0JDLEVBQXBCLEVBQXdCO0FBQzdCLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyx1QkFBcUJELEVBQWhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsWUFBVCxDQUFzQkYsRUFBdEIsRUFBeUJMLElBQXpCLEVBQStCO0FBQ3BDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx1QkFBcUJILEVBQWhDLEVBQW1DTCxJQUFuQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNTLFlBQVQsQ0FBc0JULElBQXRCLEVBQTRCO0FBQ2pDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNEIiwiZmlsZSI6ImUwMjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJbmRleChkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dsZy9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dsZycsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3dsZy8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3dsZy8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGcvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e024\n')},e131:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWorkCenterIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWorkCenterSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWorkCenterRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWorkCenterUpdate; });\n/* unused harmony export crmWorkCenterDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.WorkCenter;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmWorkCenterIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/workCenter/list\',data)\n} // 创建\n\nfunction crmWorkCenterSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/workCenter\',data)\n} //根据id获取单条数据\n\nfunction crmWorkCenterRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/workCenter/\'+id)\n} // 根据id修改\n\nfunction crmWorkCenterUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/workCenter/\'+id,data)\n} // 删除\n\nfunction crmWorkCenterDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/workCenter/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dvcmtDZW50ZXIvd29ya0NlbnRlci5qcz9lMTMxIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiV29ya0NlbnRlciIsImZ1bmNzIiwiY3JtV29ya0NlbnRlckluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVdvcmtDZW50ZXJTYXZlIiwiY3JtV29ya0NlbnRlclJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVdvcmtDZW50ZXJVcGRhdGUiLCJwdXRzIiwiY3JtV29ya0NlbnRlckRlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLFVBQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QixDLENBRUE7O0FBQ08sU0FBU0Msa0JBQVQsQ0FBNEJDLElBQTVCLEVBQWtDO0FBQ3ZDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ0ssUUFBckMsRUFBOENILElBQTlDLENBQVAsQ0FEdUMsQ0FFdkM7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksaUJBQVQsQ0FBMkJKLElBQTNCLEVBQWlDO0FBQ3RDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQXZCLEVBQStCSyxJQUEvQixDQUFQLENBRHNDLENBRXRDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNLLGlCQUFULENBQTJCQyxFQUEzQixFQUErQjtBQUNwQyxTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQURvQyxDQUVwQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxtQkFBVCxDQUE2QkgsRUFBN0IsRUFBZ0NOLElBQWhDLEVBQXNDO0FBQzNDLFNBQU9DLDREQUFLLENBQUNTLElBQU4sQ0FBV3RCLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUFYLEdBQW1CRyxLQUFLLENBQUNVLFFBQXpCLEdBQWtDRixFQUE3QyxFQUFnRE4sSUFBaEQsQ0FBUCxDQUQyQyxDQUUzQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTVyxtQkFBVCxDQUE2QlgsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDYyxVQUFyQyxFQUFnRFosSUFBaEQsQ0FBUCxDQUR3QyxDQUV4QztBQUNEIiwiZmlsZSI6ImUxMzEuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuaW1wb3J0IGFwaUNvbmZpZyBmcm9tICdAL2FwaS9hcGlDb25maWcnXHJcblxyXG5jb25zdCBhcGk9IGFwaUNvbmZpZy5yb3V0ZXIuYXBpUm91dGU7XHJcbmNvbnN0IG1vZHVsZT0gYXBpQ29uZmlnLm1vZHVsZXMuTWFudWZhY3R1cmU7XHJcbmNvbnN0IGNybVR5cGU9YXBpQ29uZmlnLmNybVR5cGVzLldvcmtDZW50ZXI7XHJcbmNvbnN0IGZ1bmNzPWFwaUNvbmZpZy5mdW5jcztcclxuXHJcbi8v6I635Y+W5YiX6KGo5pWw5o2uXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVySW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTGlzdEZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyL2xpc3QnLGRhdGEpXHJcbn1cclxuLy8g5Yib5bu6XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVyU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZSxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3dvcmtDZW50ZXInLGRhdGEpXHJcbn1cclxuLy/moLnmja5pZOiOt+WPluWNleadoeaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV29ya0NlbnRlclJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQpXHJcbiAgLy9yZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVdvcmtDZW50ZXJVcGRhdGUoaWQsZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wdXRzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5OdWxsRnVuYytpZCxkYXRhKVxyXG4gIC8vcmV0dXJuIGF4aW9zLnB1dHMoJy9hcGkvYmFzZWRhdGEvd29ya0NlbnRlci8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1Xb3JrQ2VudGVyRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkRlbGV0ZUZ1bmMsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93b3JrQ2VudGVyL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///e131\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e5b7:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmEqptTypeIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmEqptTypeSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmEqptTypeRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmEqptTypeUpdate; });\n/* unused harmony export crmEqptTypeDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmEqptTypeIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type/list\', data);\n} // 创建\n\nfunction crmEqptTypeSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type\', data);\n} // 根据id获取\n\nfunction crmEqptTypeRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/eqpt-type/\' + id);\n} // 根据id修改\n\nfunction crmEqptTypeUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/eqpt-type/\' + id, data);\n} // 删除\n\nfunction crmEqptTypeDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/eqpt-type/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL2VxcHRUeXBlL2VxcHRUeXBlLmpzP2U1YjciXSwibmFtZXMiOlsiY3JtRXFwdFR5cGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtRXFwdFR5cGVTYXZlIiwiY3JtRXFwdFR5cGVSZWFkIiwiaWQiLCJnZXRzIiwiY3JtRXFwdFR5cGVVcGRhdGUiLCJwdXRzIiwiY3JtRXFwdFR5cGVEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGdCQUFULENBQTBCQyxJQUExQixFQUFnQztBQUNyQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksOEJBQVosRUFBMkNGLElBQTNDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0csZUFBVCxDQUF5QkgsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLHlCQUFaLEVBQXNDRixJQUF0QyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNJLGVBQVQsQ0FBeUJDLEVBQXpCLEVBQTZCO0FBQ2xDLFNBQU9KLDREQUFLLENBQUNLLElBQU4sQ0FBVyw2QkFBMkJELEVBQXRDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0UsaUJBQVQsQ0FBMkJGLEVBQTNCLEVBQThCTCxJQUE5QixFQUFvQztBQUN6QyxTQUFPQyw0REFBSyxDQUFDTyxJQUFOLENBQVcsNkJBQTJCSCxFQUF0QyxFQUF5Q0wsSUFBekMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTUyxpQkFBVCxDQUEyQlQsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLGdDQUFaLEVBQTZDRixJQUE3QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZTViNy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvbGlzdCcsZGF0YSlcclxufVxyXG4vLyDliJvlu7pcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL2VxcHQtdHlwZScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvZXFwdC10eXBlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybUVxcHRUeXBlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtRXFwdFR5cGVEZWxldGUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9lcXB0LXR5cGUvZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e5b7\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},e8a1:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE0REI4QTc0RTBDQzExRThBMjVFQURFN0NBODRENkE5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE0REI4QTc1RTBDQzExRThBMjVFQURFN0NBODRENkE5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTREQjhBNzJFMENDMTFFOEEyNUVBREU3Q0E4NEQ2QTkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTREQjhBNzNFMENDMTFFOEEyNUVBREU3Q0E4NEQ2QTkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7f1mVuAAABMElEQVR42syUv0tCURSA1Vzcm5qa+h9aBCGisbacmirQKGgUHAQJl35MJUHamotOkhTOTv0RBoLkEE1t9l04Dy6Xc7s3dOjCN7xzH98795xzXzpfn6aWuTKpJa+/CNPQgC8YwOoiQiO7gzOowTq8atJY4Q4cwB5cQgFymjRW+AIb8CzPE580EzhmBfpQhHdn35Y+hYRGdgtV+IRHKCnvGek9bCaB7C8NMDXblY6+wQ10YObUti57aoaaLInPlUZ1JfuKlqFPdirzV7ays2Ul+2N2hg1FdgjXMn/NkMzN8ERSH1ixFTiChxiZKxzBsYzARGJNT81UmXvkffiGIawpDeiFZK7wA7YUaSJrh2Ta2Mwc6bnIWjEy301JpGO4gCsZmXnMpc964ka6/S/+2D8CDADiQVJvALiknAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9yZWxldmFuY2VfZmlsZS5wbmc/NjBiOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiZThhMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQVVDQVlBQUFDTmlSME5BQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tFMFJFSTRRVGMwUlRCRFF6RXhSVGhCTWpWRlFVUkZOME5CT0RSRU5rRTVJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa0UwUkVJNFFUYzFSVEJEUXpFeFJUaEJNalZGUVVSRk4wTkJPRFJFTmtFNUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRVFJFUWpoQk56SkZNRU5ETVRGRk9FRXlOVVZCUkVVM1EwRTRORVEyUVRraUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFUUkVRamhCTnpORk1FTkRNVEZGT0VFeU5VVkJSRVUzUTBFNE5FUTJRVGtpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3ZjFtVnVBQUFCTUVsRVFWUjQyc3lVdjB0Q1VSU0ExVnpjbTVxYStoOWFCQ0dpc2JhY21pclFLR2dVSEFRSmwzNU1KVUhhbW90T2toVE9UdjBSQm9Ma0VFMXQ5bDA0RHk2WGM3czNkT2pDTjd4ekg5ODc5NXh6WHpwZm42YVd1VEtwSmErL0NOUFFnQzhZd09vaVFpTzdnek9vd1RxOGF0Slk0UTRjd0I1Y1FnRnltalJXK0FJYjhDelBFNTgwRXpobUJmcFFoSGRuMzVZK2hZUkdkZ3RWK0lSSEtDbnZHZWs5YkNhQjdDOE5NRFhibFk2K3dRMTBZT2JVdGk1N2FvYWFMSW5QbFVaMUpmdUtscUZQZGlyelY3YXlzMlVsKzJOMmhnMUZkZ2pYTW4vTmtNek44RVJTSDFpeEZUaUNoeGlaS3h6QnNZekFSR0pOVDgxVW1YdmtmZmlHSWF3cERlaUZaSzd3QTdZVWFTSnJoMlRhMk13YzZibklXakV5MzAxSnBHTzRnQ3NabVhuTXBjOTY0a2E2L1MvKzJEOENEQURpUVZKdkFMaWtuQUFBQUFCSlJVNUVya0pnZ2c9PVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e8a1\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},f68e:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmTeamIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmTeamSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmTeamRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmTeamUpdate; });\n/* unused harmony export crmTeamDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n/* harmony import */ var _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("34aa");\nvar _api_apiConfig__WEBPACK_IMPORTED_MODULE_1___namespace = /*#__PURE__*/__webpack_require__.t("34aa", 1);\n\n\nvar api = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.router.apiRoute;\nvar module = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.modules.Manufacture;\nvar crmType = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.crmTypes.Team;\nvar funcs = _api_apiConfig__WEBPACK_IMPORTED_MODULE_1__.funcs; //获取列表数据\n\nfunction crmTeamIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.ListFunc, data); //return axios.posts(\'/api/basedata/team/list\',data)\n} // 创建\n\nfunction crmTeamSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType, data); //return axios.posts(\'/api/basedata/team\',data)\n} //根据id获取单条数据\n\nfunction crmTeamRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(api + module + crmType + funcs.NullFunc + id); //return axios.gets(\'/api/basedata/team/\'+id)\n} // 根据id修改\n\nfunction crmTeamUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(api + module + crmType + funcs.NullFunc + id, data); //return axios.puts(\'/api/basedata/team/\'+id,data)\n} // 删除\n\nfunction crmTeamDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(api + module + crmType + funcs.DeleteFunc, data); //return axios.posts(\'/api/basedata/team/delete\',data)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3RlYW0vdGVhbS5qcz9mNjhlIl0sIm5hbWVzIjpbImFwaSIsImFwaUNvbmZpZyIsInJvdXRlciIsImFwaVJvdXRlIiwibW9kdWxlIiwibW9kdWxlcyIsIk1hbnVmYWN0dXJlIiwiY3JtVHlwZSIsImNybVR5cGVzIiwiVGVhbSIsImZ1bmNzIiwiY3JtVGVhbUluZGV4IiwiZGF0YSIsImF4aW9zIiwicG9zdHMiLCJMaXN0RnVuYyIsImNybVRlYW1TYXZlIiwiY3JtVGVhbVJlYWQiLCJpZCIsImdldHMiLCJOdWxsRnVuYyIsImNybVRlYW1VcGRhdGUiLCJwdXRzIiwiY3JtVGVhbURlbGV0ZSIsIkRlbGV0ZUZ1bmMiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBRUEsSUFBTUEsR0FBRyxHQUFFQywyQ0FBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUE1QjtBQUNBLElBQU1DLE1BQU0sR0FBRUgsMkNBQVMsQ0FBQ0ksT0FBVixDQUFrQkMsV0FBaEM7QUFDQSxJQUFNQyxPQUFPLEdBQUNOLDJDQUFTLENBQUNPLFFBQVYsQ0FBbUJDLElBQWpDO0FBQ0EsSUFBTUMsS0FBSyxHQUFDVCwyQ0FBUyxDQUFDUyxLQUF0QixDLENBRUE7O0FBQ08sU0FBU0MsWUFBVCxDQUFzQkMsSUFBdEIsRUFBNEI7QUFDakMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZZCxHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDSyxRQUFyQyxFQUE4Q0gsSUFBOUMsQ0FBUCxDQURpQyxDQUVqQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxXQUFULENBQXFCSixJQUFyQixFQUEyQjtBQUNoQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVlkLEdBQUcsR0FBQ0ksTUFBSixHQUFXRyxPQUF2QixFQUErQkssSUFBL0IsQ0FBUCxDQURnQyxDQUVoQztBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSyxXQUFULENBQXFCQyxFQUFyQixFQUF5QjtBQUM5QixTQUFPTCw0REFBSyxDQUFDTSxJQUFOLENBQVduQixHQUFHLEdBQUNJLE1BQUosR0FBV0csT0FBWCxHQUFtQkcsS0FBSyxDQUFDVSxRQUF6QixHQUFrQ0YsRUFBN0MsQ0FBUCxDQUQ4QixDQUU5QjtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxhQUFULENBQXVCSCxFQUF2QixFQUEwQk4sSUFBMUIsRUFBZ0M7QUFDckMsU0FBT0MsNERBQUssQ0FBQ1MsSUFBTixDQUFXdEIsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ1UsUUFBekIsR0FBa0NGLEVBQTdDLEVBQWdETixJQUFoRCxDQUFQLENBRHFDLENBRXJDO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNXLGFBQVQsQ0FBdUJYLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWWQsR0FBRyxHQUFDSSxNQUFKLEdBQVdHLE9BQVgsR0FBbUJHLEtBQUssQ0FBQ2MsVUFBckMsRUFBZ0RaLElBQWhELENBQVAsQ0FEa0MsQ0FFbEM7QUFDRCIsImZpbGUiOiJmNjhlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbmltcG9ydCBhcGlDb25maWcgZnJvbSAnQC9hcGkvYXBpQ29uZmlnJ1xyXG5cclxuY29uc3QgYXBpPSBhcGlDb25maWcucm91dGVyLmFwaVJvdXRlO1xyXG5jb25zdCBtb2R1bGU9IGFwaUNvbmZpZy5tb2R1bGVzLk1hbnVmYWN0dXJlO1xyXG5jb25zdCBjcm1UeXBlPWFwaUNvbmZpZy5jcm1UeXBlcy5UZWFtO1xyXG5jb25zdCBmdW5jcz1hcGlDb25maWcuZnVuY3M7XHJcblxyXG4vL+iOt+WPluWIl+ihqOaVsOaNrlxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLkxpc3RGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdGVhbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cyhhcGkrbW9kdWxlK2NybVR5cGUsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS90ZWFtJyxkYXRhKVxyXG59XHJcbi8v5qC55o2uaWTojrflj5bljZXmnaHmlbDmja5cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVRlYW1SZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoYXBpK21vZHVsZStjcm1UeXBlK2Z1bmNzLk51bGxGdW5jK2lkKVxyXG4gIC8vcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvdGVhbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1UZWFtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cyhhcGkrbW9kdWxlK2NybVR5cGUrZnVuY3MuTnVsbEZ1bmMraWQsZGF0YSlcclxuICAvL3JldHVybiBheGlvcy5wdXRzKCcvYXBpL2Jhc2VkYXRhL3RlYW0vJytpZCxkYXRhKVxyXG59XHJcbi8vIOWIoOmZpFxyXG5leHBvcnQgZnVuY3Rpb24gY3JtVGVhbURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKGFwaSttb2R1bGUrY3JtVHlwZStmdW5jcy5EZWxldGVGdW5jLGRhdGEpXHJcbiAgLy9yZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvdGVhbS9kZWxldGUnLGRhdGEpXHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///f68e\n')},f7dc:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmRuleIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmRuleSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmRuleRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmRuleUpdate; });\n/* unused harmony export crmRuleDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n\n/*axios*/\n\nfunction crmRuleIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule/list\', data);\n}\nfunction crmRuleSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule\', data);\n}\nfunction crmRuleRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/rule/\' + id);\n}\nfunction crmRuleUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/rule/\' + id, data);\n}\nfunction crmRuleDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/rule/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3J1bGUvcnVsZS5qcz9mN2RjIl0sIm5hbWVzIjpbImNybVJ1bGVJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtUnVsZVNhdmUiLCJjcm1SdWxlUmVhZCIsImlkIiwiZ2V0cyIsImNybVJ1bGVVcGRhdGUiLCJwdXRzIiwiY3JtUnVsZURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTs7QUFDTyxTQUFTQSxZQUFULENBQXNCQyxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkseUJBQVosRUFBc0NGLElBQXRDLENBQVA7QUFDRDtBQUNNLFNBQVNHLFdBQVQsQ0FBcUJILElBQXJCLEVBQTJCO0FBQ2hDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSxvQkFBWixFQUFpQ0YsSUFBakMsQ0FBUDtBQUNEO0FBQ00sU0FBU0ksV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7QUFDOUIsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHdCQUFzQkQsRUFBakMsQ0FBUDtBQUNEO0FBQ00sU0FBU0UsYUFBVCxDQUF1QkYsRUFBdkIsRUFBMEJMLElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNPLElBQU4sQ0FBVyx3QkFBc0JILEVBQWpDLEVBQW9DTCxJQUFwQyxDQUFQO0FBQ0Q7QUFDTSxTQUFTUyxhQUFULENBQXVCVCxJQUF2QixFQUE2QjtBQUNsQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVksMkJBQVosRUFBd0NGLElBQXhDLENBQVA7QUFDRCIsImZpbGUiOiJmN2RjLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ0AvYXhpb3MvaW5kZXgnXHJcbi8qYXhpb3MqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JtUnVsZUluZGV4KGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvcnVsZS9saXN0JyxkYXRhKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1SdWxlU2F2ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3J1bGUnLGRhdGEpXHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGNybVJ1bGVSZWFkKGlkKSB7XHJcbiAgcmV0dXJuIGF4aW9zLmdldHMoJy9hcGkvYmFzZWRhdGEvcnVsZS8nK2lkKVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1SdWxlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9ydWxlLycraWQsZGF0YSlcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gY3JtUnVsZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3J1bGUvZGVsZXRlJyxkYXRhKVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///f7dc\n')},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')},fdcb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmWlgItemIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmWlgItemSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmWlgItemRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmWlgItemUpdate; });\n/* unused harmony export crmWlgItemDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmWlgItemIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item/list\', data);\n} // 创建\n\nfunction crmWlgItemSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item\', data);\n} // 根据id获取\n\nfunction crmWlgItemRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/wlg-item/\' + id);\n} // 根据id修改\n\nfunction crmWlgItemUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/wlg-item/\' + id, data);\n} // 删除\n\nfunction crmWlgItemDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/wlg-item/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3dsZ0l0ZW0vd2xnSXRlbS5qcz9mZGNiIl0sIm5hbWVzIjpbImNybVdsZ0l0ZW1JbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtV2xnSXRlbVNhdmUiLCJjcm1XbGdJdGVtUmVhZCIsImlkIiwiZ2V0cyIsImNybVdsZ0l0ZW1VcGRhdGUiLCJwdXRzIiwiY3JtV2xnSXRlbURlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0NBQ0E7O0FBQ08sU0FBU0EsZUFBVCxDQUF5QkMsSUFBekIsRUFBK0I7QUFDcEMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDZCQUFaLEVBQTBDRixJQUExQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNHLGNBQVQsQ0FBd0JILElBQXhCLEVBQThCO0FBQ25DLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSx3QkFBWixFQUFxQ0YsSUFBckMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTSSxjQUFULENBQXdCQyxFQUF4QixFQUE0QjtBQUNqQyxTQUFPSiw0REFBSyxDQUFDSyxJQUFOLENBQVcsNEJBQTBCRCxFQUFyQyxDQUFQO0FBQ0QsQyxDQUNEOztBQUNPLFNBQVNFLGdCQUFULENBQTBCRixFQUExQixFQUE2QkwsSUFBN0IsRUFBbUM7QUFDeEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLDRCQUEwQkgsRUFBckMsRUFBd0NMLElBQXhDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsZ0JBQVQsQ0FBMEJULElBQTFCLEVBQWdDO0FBQ3JDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwrQkFBWixFQUE0Q0YsSUFBNUMsQ0FBUDtBQUNEIiwiZmlsZSI6ImZkY2IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXhpb3MgZnJvbSAnQC9heGlvcy9pbmRleCdcclxuLy8g6I635Y+W5YiX6KGoXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnSXRlbVNhdmUoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbScsZGF0YSlcclxufVxyXG4vLyDmoLnmja5pZOiOt+WPllxyXG5leHBvcnQgZnVuY3Rpb24gY3JtV2xnSXRlbVJlYWQoaWQpIHtcclxuICByZXR1cm4gYXhpb3MuZ2V0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS8nK2lkKVxyXG59XHJcbi8vIOagueaNrmlk5L+u5pS5XHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS93bGctaXRlbS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1XbGdJdGVtRGVsZXRlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvd2xnLWl0ZW0vZGVsZXRlJyxkYXRhKVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///fdcb\n')},ff93:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return crmStageIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return crmStageSave; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return crmStageRead; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return crmStageUpdate; });\n/* unused harmony export crmStageDelete */\n/* harmony import */ var _axios_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eeb9");\n // 获取列表\n\nfunction crmStageIndex(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage/list\', data);\n} // 创建\n\nfunction crmStageSave(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage\', data);\n} // 根据id获取\n\nfunction crmStageRead(id) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].gets(\'/api/basedata/stage/\' + id);\n} // 根据id修改\n\nfunction crmStageUpdate(id, data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].puts(\'/api/basedata/stage/\' + id, data);\n} // 删除\n\nfunction crmStageDelete(data) {\n return _axios_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].posts(\'/api/basedata/stage/delete\', data);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXBpL3N0YWdlL3N0YWdlLmpzP2ZmOTMiXSwibmFtZXMiOlsiY3JtU3RhZ2VJbmRleCIsImRhdGEiLCJheGlvcyIsInBvc3RzIiwiY3JtU3RhZ2VTYXZlIiwiY3JtU3RhZ2VSZWFkIiwiaWQiLCJnZXRzIiwiY3JtU3RhZ2VVcGRhdGUiLCJwdXRzIiwiY3JtU3RhZ2VEZWxldGUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtDQUNBOztBQUNPLFNBQVNBLGFBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0FBQ2xDLFNBQU9DLDREQUFLLENBQUNDLEtBQU4sQ0FBWSwwQkFBWixFQUF1Q0YsSUFBdkMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRyxZQUFULENBQXNCSCxJQUF0QixFQUE0QjtBQUNqQyxTQUFPQyw0REFBSyxDQUFDQyxLQUFOLENBQVkscUJBQVosRUFBa0NGLElBQWxDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU0ksWUFBVCxDQUFzQkMsRUFBdEIsRUFBMEI7QUFDL0IsU0FBT0osNERBQUssQ0FBQ0ssSUFBTixDQUFXLHlCQUF1QkQsRUFBbEMsQ0FBUDtBQUNELEMsQ0FDRDs7QUFDTyxTQUFTRSxjQUFULENBQXdCRixFQUF4QixFQUEyQkwsSUFBM0IsRUFBaUM7QUFDdEMsU0FBT0MsNERBQUssQ0FBQ08sSUFBTixDQUFXLHlCQUF1QkgsRUFBbEMsRUFBcUNMLElBQXJDLENBQVA7QUFDRCxDLENBQ0Q7O0FBQ08sU0FBU1MsY0FBVCxDQUF3QlQsSUFBeEIsRUFBOEI7QUFDbkMsU0FBT0MsNERBQUssQ0FBQ0MsS0FBTixDQUFZLDRCQUFaLEVBQXlDRixJQUF6QyxDQUFQO0FBQ0QiLCJmaWxlIjoiZmY5My5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdAL2F4aW9zL2luZGV4J1xyXG4vLyDojrflj5bliJfooahcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlSW5kZXgoZGF0YSkge1xyXG4gIHJldHVybiBheGlvcy5wb3N0cygnL2FwaS9iYXNlZGF0YS9zdGFnZS9saXN0JyxkYXRhKVxyXG59XHJcbi8vIOWIm+W7ulxyXG5leHBvcnQgZnVuY3Rpb24gY3JtU3RhZ2VTYXZlKGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucG9zdHMoJy9hcGkvYmFzZWRhdGEvc3RhZ2UnLGRhdGEpXHJcbn1cclxuLy8g5qC55o2uaWTojrflj5ZcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlUmVhZChpZCkge1xyXG4gIHJldHVybiBheGlvcy5nZXRzKCcvYXBpL2Jhc2VkYXRhL3N0YWdlLycraWQpXHJcbn1cclxuLy8g5qC55o2uaWTkv67mlLlcclxuZXhwb3J0IGZ1bmN0aW9uIGNybVN0YWdlVXBkYXRlKGlkLGRhdGEpIHtcclxuICByZXR1cm4gYXhpb3MucHV0cygnL2FwaS9iYXNlZGF0YS9zdGFnZS8nK2lkLGRhdGEpXHJcbn1cclxuLy8g5Yig6ZmkXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm1TdGFnZURlbGV0ZShkYXRhKSB7XHJcbiAgcmV0dXJuIGF4aW9zLnBvc3RzKCcvYXBpL2Jhc2VkYXRhL3N0YWdlL2RlbGV0ZScsZGF0YSlcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ff93\n')}}]); \ No newline at end of file diff --git a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-de0cc00c.ef5d3286.js b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-de0cc00c.ef5d3286.js index d6b0dd4..7ef34ed 100644 --- a/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-de0cc00c.ef5d3286.js +++ b/Modules/新版JIT或JIS系统服务端/src/WY.NewJit.Web/wwwroot/static/js/chunk-de0cc00c.ef5d3286.js @@ -1 +1 @@ -(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-de0cc00c"],{"01d5":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7ecc");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT85Zjg1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIwMWQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU0NWExNTkyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///01d5\n')},"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"7ecc":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9jYzE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjdlY2MuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7ecc\n")},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},bcf5:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d6fd");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/M2NhZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiYmNmNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjI0MzI0ZjcmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///bcf5\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},ceae:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=template&id=e45a1592&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"生产线:","prop":"productType"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.ptypeselectChange},model:{value:(_vm.listQuery.productType),callback:function ($$v) {_vm.$set(_vm.listQuery, "productType", $$v)},expression:"listQuery.productType"}},_vm._l((_vm.productTypeList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.name,"value":item.id}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"","prop":"productLine"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.productLine),callback:function ($$v) {_vm.$set(_vm.listQuery, "productLine", $$v)},expression:"listQuery.productLine"}},_vm._l((_vm.PLChildList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.productLineName,"value":item.productLineCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本:","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"大众顺序号:","prop":"HostSNBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNBegin", $$v)},expression:"listQuery.HostSNBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"HostSNEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNEnd", $$v)},expression:"listQuery.HostSNEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\',\'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.OnlineTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "OnlineTimeValue", $$v)},expression:"listQuery.OnlineTimeValue"}})],1),_c(\'el-form-item\',{attrs:{"label":"接收日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\',\'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.ReceiveTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "ReceiveTimeValue", $$v)},expression:"listQuery.ReceiveTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")])],1),_c(\'el-form-item\',{staticStyle:{"margin-bottom":"0px","margin-top":"-1px"}},[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus"},on:{"click":_vm.handleCreate}},[_vm._v("新增 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-edit"},on:{"click":_vm.handleUpdate}},[_vm._v("修改 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-delete"},on:{"click":_vm.handleDelete}},[_vm._v("删除 ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table",staticStyle:{"margin-top":"-9px"}},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"底盘号","prop":"vin ","sortable":"custom","align":"center","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.vin))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"width":"1000px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event}}},[_c(\'el-form\',{ref:"form",attrs:{"inline":true,"model":_vm.form,"rules":_vm.rules,"size":"small","label-width":"120px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"knr","required":""}},[_c(\'el-select\',{staticStyle:{"width":"350px"},attrs:{"placeholder":"请选择添加M100信息对应的KNR号","filterable":"","disabled":false},on:{"change":_vm.getVModel},model:{value:(_vm.form.knr),callback:function ($$v) {_vm.$set(_vm.form, "knr", $$v)},expression:"form.knr"}},_vm._l((_vm.KNRlist),function(item){return _c(\'el-option\',{key:item.knr,attrs:{"label":item.knr,"value":item.knr}})}),1)],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"车型:","prop":"vehicleModelCode","required":""}},[_c(\'el-select\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},on:{"change":_vm.vMchange},model:{value:(_vm.form.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.form, "vehicleModelCode", $$v)},expression:"form.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1)],1),_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"vin","required":""}},[_c(\'el-input\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},model:{value:(_vm.form.vin),callback:function ($$v) {_vm.$set(_vm.form, "vin", $$v)},expression:"form.vin"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"大众顺序号:","prop":"hostSN","required":""}},[_c(\'el-input\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},model:{value:(_vm.form.hostSN),callback:function ($$v) {_vm.$set(_vm.form, "hostSN", $$v)},expression:"form.hostSN"}})],1)],1),_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"上线日期:","prop":"onlineTime","required":""}},[_c(\'el-date-picker\',{staticStyle:{"width":"350px"},attrs:{"type":"datetime","value-format":"yyyy-MM-dd HH:mm:ss","placeholder":"选择时间","disabled":false},model:{value:(_vm.form.onlineTime),callback:function ($$v) {_vm.$set(_vm.form, "onlineTime", $$v)},expression:"form.onlineTime"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'div\',{staticStyle:{"border":"1px solid #E4E4E4","width":"94%"}},[_c(\'el-row\',[_c(\'div\',{staticStyle:{"background":"#F1F1F1","width":"100%","height":"30px","line-height":"31px"}},[_c(\'label\',{staticStyle:{"margin-left":"15px"}},[_vm._v("ERP总成")])])]),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"LeftDetialTable",staticClass:"cr-table",staticStyle:{"width":"95%","margin":"10px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.leftdetails,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.handleLeftRowClick,"selection-change":_vm.handleLeftSelectionChange}},[_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyCode","label":"ERP总成编号","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.erpAssemblyCode),callback:function ($$v) {_vm.$set(scope.row, "erpAssemblyCode", $$v)},expression:"scope.row.erpAssemblyCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyName","label":"ERP总成名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.erpAssemblyName),callback:function ($$v) {_vm.$set(scope.row, "erpAssemblyName", $$v)},expression:"scope.row.erpAssemblyName"}})]}}])}),_c(\'el-table-column\',{attrs:{"width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleLeftDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddLeftDetails}})],1)],2)],1)],1)],1)]),_c(\'el-col\',{attrs:{"span":12}},[_c(\'div\',{staticStyle:{"border":"1px solid #E4E4E4","width":"94%"}},[_c(\'el-row\',[_c(\'div\',{staticStyle:{"background":"#F1F1F1","width":"100%","height":"30px","line-height":"31px"}},[_c(\'label\',{staticStyle:{"margin-left":"15px"}},[_vm._v("ERP结算件")])])]),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"DetialTable",staticClass:"cr-table",staticStyle:{"width":"95%","margin":"10px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.rightdetails,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.partCode),callback:function ($$v) {_vm.$set(scope.row, "partCode", $$v)},expression:"scope.row.partCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.description),callback:function ($$v) {_vm.$set(scope.row, "description", $$v)},expression:"scope.row.description"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量","width":"120px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input-number\',{staticStyle:{"width":"100px"},attrs:{"min":1,"size":"mini"},model:{value:(scope.row.partNum),callback:function ($$v) {_vm.$set(scope.row, "partNum", $$v)},expression:"scope.row.partNum"}})]}}])}),_c(\'el-table-column\',{attrs:{"width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleRightDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddRightDetails}})],1)],2)],1)],1)],1)])],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogFormVisible = false}}},[_vm._v("取消")]),_c(\'el-button\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.formLoading),expression:"formLoading"}],attrs:{"type":"primary"},on:{"click":_vm.save}},[_vm._v("确认")])],1)],1)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)])}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=template&id=e45a1592&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.sort.js\nvar es6_array_sort = __webpack_require__("55dd");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\nvar objectSpread2 = __webpack_require__("5530");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=template&id=224324f7&scoped=true&\nvar detailvue_type_template_id_224324f7_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":"","row-key":_vm.getRowKeys,"expand-row-keys":_vm.expands},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick,"expand-change":_vm.exChange}},[_c(\'el-table-column\',{attrs:{"type":"expand","prop":"details"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-table\',{attrs:{"data":scope.row.details}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"描述"}}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [(scope.row.isKey == true)?_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#00b46d"}},[_vm._v("是")])]):_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#d75c89"}},[_vm._v("否")])])]}}],null,true)})],1)]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyVersion","label":"总成版本号","sortable":"","width":"360"}})],2),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_224324f7_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=template&id=224324f7&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n expands: [],\n //只展开一行放入当前行id\n getRowKeys: function getRowKeys(row) {\n return row.id; //这里看这一行中需要根据哪个属性值是id\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成编号",\n prop: "erpAssemblyCode",\n width: 160\n });\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 160\n }); // tempsTabs.push({\n // label: "总成版本号",\n // prop: "erpAssemblyName",\n // width: 160,\n // });\n\n return tempsTabs;\n }\n },\n methods: {\n exChange: function exChange(row, rowList) {\n this.loading = true;\n var that = this;\n\n if (rowList.length) {\n that.expands = [];\n\n if (row) {\n that.expands.push(row.id); // 只展开当前行id\n }\n } else {\n that.expands = [];\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId)); //alert("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n\n var vehicleAssemblyId = {\n vehicleAssemblyId: this.customerInfo.parentId\n };\n this.$axios.gets("/api/newjit/assembly-cfg-vehicle/list", vehicleAssemblyId).then(function (response) {\n _this2.list = response;\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var m100BIll_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=style&index=0&id=224324f7&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_224324f7_lang_scss_scoped_true_ = __webpack_require__("bcf5");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n m100BIll_detailvue_type_script_lang_js_,\n detailvue_type_template_id_224324f7_scoped_true_render,\n detailvue_type_template_id_224324f7_scoped_true_staticRenderFns,\n false,\n null,\n "224324f7",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var m100BIllvue_type_script_lang_js_ = ({\n name: "m100Bill",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var _ref;\n\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return _ref = {\n crmType: "m100Bill",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n SkipCount: 0,\n MaxResultCount: 15,\n productType: 1,\n ProductLine: undefined,\n version: undefined,\n HostSNBegin: undefined,\n HostSNEnd: undefined,\n KNRBegin: undefined,\n KNREnd: undefined,\n VINBegin: undefined,\n VINEnd: undefined,\n OnlineTimeValue: undefined,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n ReceiveTimeValue: undefined,\n ReceiveTimeBegin: undefined,\n ReceiveTimeEnd: undefined\n },\n listExportQuery: {\n erpAssemblyCode: undefined,\n erpAssemblyName: undefined\n },\n listPLQuery: {\n BillType: 2 //UserId: "00000000-0000-0000-0000-000000000000",\n\n },\n knrQuery: {\n knr: undefined\n }\n }, Object(defineProperty["a" /* default */])(_ref, "form", {\n leftdetails: [],\n rightdetails: []\n }), Object(defineProperty["a" /* default */])(_ref, "saveform", {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: [// {\n // erpAssemblyCode:undefined,\n // erpAssemblyName:undefined,\n // vehicleModel:undefined,\n // //isCover: true,\n // details: undefined,\n // // {\n // // partCode: undefined,\n // // partNum: 1,\n // // description: undefined,\n // // isKey: false\n // // }\n // },\n ] // #region\n\n /*\r\n \r\n */\n // #endregion\n\n }), Object(defineProperty["a" /* default */])(_ref, "rightAlldetails", []), Object(defineProperty["a" /* default */])(_ref, "page", 1), Object(defineProperty["a" /* default */])(_ref, "showSearch", true), Object(defineProperty["a" /* default */])(_ref, "bomUnit", bomUnit), Object(defineProperty["a" /* default */])(_ref, "multipleSelection", []), Object(defineProperty["a" /* default */])(_ref, "multipLeLeftSelection", []), Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "dialogFormVisible", false), Object(defineProperty["a" /* default */])(_ref, "formTitle", ""), Object(defineProperty["a" /* default */])(_ref, "isEdit", false), Object(defineProperty["a" /* default */])(_ref, "formLoading", false), Object(defineProperty["a" /* default */])(_ref, "tableHeight", document.documentElement.clientHeight - 335), Object(defineProperty["a" /* default */])(_ref, "detailTableHeight", 250), Object(defineProperty["a" /* default */])(_ref, "PLList", []), Object(defineProperty["a" /* default */])(_ref, "PLChildList", []), Object(defineProperty["a" /* default */])(_ref, "vehicleModelQuery", {\n dicTypeName: "派格车型"\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), Object(defineProperty["a" /* default */])(_ref, "productTypeList", [{\n id: 1,\n name: \'门板\'\n }, {\n id: 2,\n name: \'柱护板\'\n }]), Object(defineProperty["a" /* default */])(_ref, "gettime", ""), Object(defineProperty["a" /* default */])(_ref, "KNRlist", null), _ref;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this2.$refs.box.offsetHeight;\n _this2.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n //console.log(this.$refs.box.offsetHeight);\n //console.log(this.tableHeight);\n });\n },\n created: function created() {\n //this.getKNRList();\n this.getProductLine(); //this.getList();\n //console.log(this.userInfo);\n },\n computed: Object(objectSpread2["a" /* default */])({\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "流水号",\n prop: "serialNum",\n width: 100\n });\n tempsTabs.push({\n label: "大众顺序号",\n prop: "hostSN",\n width: 120\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 130\n }); // tempsTabs.push({\n // label: "底盘号",\n // prop: "vin",\n // width: 130,\n // });\n\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "接收时间",\n prop: "receiveTime",\n width: 180\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "采集点",\n prop: "collectionPoint",\n width: 120\n });\n tempsTabs.push({\n label: "文件名称",\n prop: "fileName",\n width: 120\n });\n tempsTabs.push({\n label: "产线",\n prop: "productLine",\n width: 120\n });\n return tempsTabs;\n }\n }, Object(vuex_esm["b" /* mapGetters */])([\'userInfo\'])),\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true; //console.log(param)\n\n var parentId = param.assemblyID; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n getCurrentTime: function getCurrentTime() {\n //获取当前时间并打印\n var _this = this;\n\n var yy = new Date().getFullYear();\n var month = new Date().getMonth() + 1;\n var mm = month < 10 ? \'0\' + month : month;\n var dd = new Date().getDate() < 10 ? \'0\' + new Date().getDate() : new Date().getDate();\n var hh = new Date().getHours() < 10 ? \'0\' + new Date().getHours() : new Date().getHours();\n var mf = new Date().getMinutes() < 10 ? \'0\' + new Date().getMinutes() : new Date().getMinutes();\n var ss = new Date().getSeconds() < 10 ? \'0\' + new Date().getSeconds() : new Date().getSeconds();\n _this.gettime = yy + \'-\' + mm + \'-\' + dd + \' \' + hh + \':\' + mf + \':\' + ss;\n },\n save: function save() {\n var _this3 = this;\n\n this.$refs.form.validate(function (valid) {\n if (valid) {\n _this3.saveform.m100Bill.hostSN = _this3.form.hostSN;\n _this3.saveform.m100Bill.knr = _this3.form.knr;\n _this3.saveform.m100Bill.vin = _this3.form.vin;\n _this3.saveform.m100Bill.onlineTime = _this3.form.onlineTime;\n _this3.saveform.m100Bill.vehicleModelCode = _this3.form.vehicleModelCode;\n\n _this3.getCurrentTime();\n\n _this3.saveform.m100Bill.description = "无";\n _this3.saveform.m100Bill.receiveTime = _this3.gettime; //判断最后一次右侧数据rightdetails是否在右侧全部数据rightAlldetails中\n\n _this3.form.rightdetails.forEach(function (element) {\n var tlist = _this3.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode && u.partName === element.partName && u.partNum === element.partNum;\n });\n\n if (tlist.length === 0) {\n _this3.rightAlldetails.push(element);\n }\n }); //this.saveform.erpAssemblyList.details = {};\n //console.log("当前左侧数据");\n //console.log(this.form.leftdetails);\n //console.log("当前右侧显示数据");\n //console.log(this.form.rightdetails);\n //console.log("当前右侧全部数据");\n //console.log(this.rightAlldetails);\n\n /**左右关联拼接最终erpAssemblyList格式 */\n\n\n _this3.form.leftdetails.forEach(function (element, i) {\n var templist = _this3.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode;\n });\n\n var obj = {};\n obj.erpAssemblyCode = element.erpAssemblyCode;\n obj.erpAssemblyName = element.erpAssemblyName;\n obj.vehicleModel = element.vehicleModel;\n obj.details = [];\n templist.forEach(function (detail) {\n if (detail.partCode !== "" && detail.partCode !== undefined) {\n obj.details.push(detail);\n }\n });\n\n _this3.saveform.erpAssemblyList.push(obj);\n }); //console.log(this.saveform);\n\n\n console.log("保存参数:" + JSON.stringify(_this3.saveform));\n _this3.formLoading = true;\n\n if (_this3.isEdit) {\n //修改\n _this3.$axios.puts("/api/newjit/new-m100/" + _this3.multipleSelection[0].id, _this3.saveform).then(function (response) {\n console.log(response);\n _this3.formLoading = false;\n\n _this3.$notify({\n title: "成功",\n message: "更新成功",\n type: "success",\n duration: 2000\n });\n\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n }).catch(function () {\n _this3.formLoading = false;\n console.log("error");\n _this3.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n };\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n });\n } else {\n //insert添加\n console.log(JSON.stringify(_this3.saveform));\n\n _this3.$axios.posts("/api/newjit/new-m100", _this3.saveform).then(function (response) {\n _this3.formLoading = false;\n\n _this3.$notify({\n title: "成功",\n message: "新增成功",\n type: "success",\n duration: 2000\n });\n\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n }).catch(function () {\n _this3.formLoading = false;\n _this3.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n };\n });\n }\n }\n });\n },\n\n /** 新增 */\n handleCreate: function handleCreate() {\n var _this4 = this;\n\n this.getKNRList();\n\n if (this.$refs["form"] !== undefined) {\n this.$nextTick(function () {\n _this4.$refs["form"].resetFields();\n });\n }\n\n this.formTitle = "新增";\n this.isEdit = false;\n this.form = {};\n this.rightAlldetails = [];\n this.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n }; //this.details = [];\n\n this.getvehicleModel();\n this.dialogFormVisible = true;\n },\n\n /** 修改 */\n handleUpdate: function handleUpdate(row) {\n this.getKNRList();\n this.formTitle = "修改";\n this.isEdit = true;\n this.rightAlldetails = [];\n this.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n }; //this.details = [];\n\n this.getvehicleModel();\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } else {\n this.fetchData(this.multipleSelection[0].id);\n this.dialogFormVisible = true;\n }\n },\n\n /** 删除 */\n handleDelete: function handleDelete(row) {\n var _this5 = this;\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } // this.$alert("暂时不支持批量删除", "提示", {\n // confirmButtonText: "确定",\n // callback: (action) => {\n // //\n // },\n // }); \n\n\n this.$confirm("是否删除底盘号" + this.multipleSelection[0].vin + "的数据?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this5.$axios.deletes("/api/newjit/new-m100/" + _this5.multipleSelection[0].id).then(function (response) {\n var index = _this5.list.indexOf(_this5.multipleSelection[0]);\n\n _this5.$notify({\n title: "成功",\n message: "删除成功",\n type: "success",\n duration: 2000\n });\n\n _this5.getList();\n });\n }).catch(function () {\n _this5.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n },\n fetchData: function fetchData(id) {\n var _this6 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/new-m100/" + id).then(function (response) {\n //console.log(response);\n _this6.form = response.item.m100Bill;\n _this6.form.rightdetails = [];\n _this6.form.leftdetails = response.item.erpAssemblyList;\n response.item.erpAssemblyList.forEach(function (element, i) {\n element.details.forEach(function (item) {\n item.erpAssemblyCode = element.erpAssemblyCode;\n\n _this6.rightAlldetails.push(item);\n\n if (i === 0) {\n _this6.form.rightdetails.push(item);\n }\n }); //console.log(this.rightAlldetails);\n //console.log(this.form.rightdetails);\n });\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this7 = this;\n\n this.listLoading = true;\n this.listExportQuery.erpAssemblyCode = this.listQuery.ErpAssemblyCode;\n this.listExportQuery.erpAssemblyName = this.listQuery.ErpAssemblyName;\n console.log(JSON.stringify(this.listExportQuery));\n this.$axios.posts("/api/newjit/new-m100/export", this.listExportQuery).then(function (res) {\n var filename = res.item;\n\n _this7.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this7.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this7.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this7.listLoading = false;\n });\n });\n this.listLoading = false;\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.$refs[refName].resetFields();\n this.listQuery.OnlineTimeValue = [];\n this.listQuery.ReceiveTimeValue = [];\n this.handleQuery();\n this.getProductLine();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1; //this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /**左增加 */\n handleAddLeftDetails: function handleAddLeftDetails() {\n this.$forceUpdate();\n\n if (this.form.leftdetails === undefined) {\n this.form.leftdetails = []; //console.log(679);\n }\n\n var obj = {};\n obj.erpAssemblyCode = "";\n obj.erpAssemblyName = "";\n obj.vehicleModel = this.form.vehicleModelCode; //console.log(this.form.leftdetails);\n\n this.form.leftdetails.push(obj); //console.log(688);\n },\n\n /**右增加 */\n handleAddRightDetails: function handleAddRightDetails() {\n this.$forceUpdate();\n var obj = {}; //判断是否选择了左侧的数据\n //console.log(this.multipLeLeftSelection);\n\n if (this.multipLeLeftSelection.length !== 1) {\n this.$message({\n message: "必须选择单行总成",\n type: "warning"\n });\n return;\n } else {// if (this.form.rightdetails === undefined) {\n // this.form.rightdetails = [];\n // this.form.rightdetails.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;\n // //console.log(679);\n // }\n }\n\n obj.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;\n obj.partCode = "";\n obj.description = "";\n obj.partNum = 1; //console.log(this.form.rightdetails);\n\n this.form.rightdetails.push(obj); //console.log(688);\n },\n\n /**左侧删除 */\n handleLeftDeleteDetails: function handleLeftDeleteDetails(index, row) {\n this.form.leftdetails.splice(index, 1);\n this.rightAlldetails = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode !== row.erpAssemblyCode;\n }); //console.log(693);\n },\n\n /**右侧删除 */\n handleRightDeleteDetails: function handleRightDeleteDetails(index, row) {\n var _this8 = this;\n\n this.form.rightdetails.splice(index, 1);\n this.rightAlldetails.forEach(function (element, i) {\n if (element === row) {\n //console.log("右侧删除");\n _this8.rightAlldetails.splice(i, 1); //console.log(this.rightAlldetails);\n\n\n return;\n }\n }); // .filter(u => u.erpAssemblyCode !== row.erpAssemblyCode && u.partCode !== row.partCode \n // && u.partName !== row.partName && u.partNum !== row.partNum);\n //console.log(693);\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this9 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.listQuery.OnlineTimeValue !== undefined) {\n this.listQuery.OnlineTimeBegin = this.listQuery.OnlineTimeValue[0];\n this.listQuery.OnlineTimeEnd = this.listQuery.OnlineTimeValue[1];\n }\n\n if (this.listQuery.ReceiveTimeValue !== undefined) {\n this.listQuery.ReceiveTimeBegin = this.listQuery.ReceiveTimeValue[0];\n this.listQuery.ReceiveTimeEnd = this.listQuery.ReceiveTimeValue[1];\n }\n\n this.$axios.gets("/api/newjit/new-m100/list", this.listQuery).then(function (response) {\n _this9.list = response.items;\n _this9.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this9.listLoading = false;\n }, 500);\n }).catch(function () {\n _this9.listLoading = false;\n });\n },\n getKNRList: function getKNRList() {\n var _this10 = this;\n\n var lq = {};\n var tlist = [];\n this.$axios.gets("/api/newjit/bill-r100/list", lq).then(function (response) {\n _this10.KNRlist = response.items;\n console.log("获取R100的KNR信息");\n console.log(_this10.KNRlist);\n }).catch(function () {\n console.log("error");\n });\n },\n getVModel: function getVModel() {\n var _this11 = this;\n\n this.form.vehicleModelCode = this.KNRlist.filter(function (u) {\n return u.knr === _this11.form.knr;\n })[0].vehicleModelCode;\n this.knrQuery.knr = this.form.knr;\n this.form.rightdetails = [];\n this.$axios.gets("/api/newjit/new-m100/get-erp-assembly-list", this.knrQuery).then(function (response) {\n if (response.status === true) {\n _this11.KNREClist = response.item; //console.log("获取KNR的总成信息");\n //console.log(this.KNREClist);\n\n _this11.form.leftdetails = response.item;\n\n _this11.$forceUpdate();\n\n response.item.forEach(function (element, i) {\n element.details.forEach(function (detail) {\n detail.erpAssemblyCode = element.erpAssemblyCode;\n\n _this11.rightAlldetails.push(detail);\n\n if (i === 0) {\n _this11.form.rightdetails.push(detail);\n }\n });\n });\n } else {\n console.log("接口返回结果为错误");\n }\n }).catch(function () {\n console.log("error");\n });\n },\n vMchange: function vMchange() {\n this.$forceUpdate();\n },\n valueselectChange: function valueselectChange() {\n this.$forceUpdate();\n },\n handleImportSAP: function handleImportSAP() {},\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val; //console.log(this.multipleSelection);\n },\n handleLeftSelectionChange: function handleLeftSelectionChange(val) {// console.log("左改变");\n // console.log(val);\n // this.multipLeLeftSelection = [];\n // this.multipLeLeftSelection.push(val);\n // console.log(this.multipLeLeftSelection);\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n\n /**主表点击*/\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n\n /**左点击*/\n handleLeftRowClick: function handleLeftRowClick(row, column, event) {\n var _this12 = this;\n\n this.$forceUpdate(); //console.log("左点击");\n\n this.$refs.LeftDetialTable.clearSelection();\n this.$refs.LeftDetialTable.toggleRowSelection(row);\n this.multipLeLeftSelection = [];\n this.multipLeLeftSelection.push(row);\n\n if (this.form.rightdetails === undefined) {\n this.form.rightdetails = [];\n }\n\n if (this.form.rightdetails.length > 0) {\n var templist = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === _this12.form.rightdetails[0].erpAssemblyCode;\n });\n this.form.rightdetails.forEach(function (element) {\n var temp = templist.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode && u.partName === element.partName && u.partNum === element.partNum;\n });\n\n if (temp.length >= 1) {//console.log("判定包含");\n //console.log(templist);\n //console.log(element);\n } else {\n //console.log("判定不包含");\n //console.log(element);\n _this12.rightAlldetails.push(element);\n }\n });\n } else {\n var templist = [];\n } //.log("右侧全数据");\n //console.log(this.rightAlldetails);\n\n\n this.form.rightdetails = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === _this12.multipLeLeftSelection[0].erpAssemblyCode;\n }); //console.log("右侧数据");\n //console.log(this.form.rightdetails);\n },\n //获取所有产线\n getProductLine: function getProductLine() {\n var _this13 = this;\n\n this.listPLQuery.UserId = this.userInfo.userId;\n this.$axios.gets("/api/newjit/product-line/list", this.listPLQuery).then(function (response) {\n //console.log(response);\n _this13.PLList = response.item;\n _this13.PLChildList = _this13.PLList.filter(function (u) {\n return u.productType === parseInt(_this13.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n _this13.listQuery.productLine = _this13.PLChildList[0].productLineCode;\n\n _this13.getList(); //console.log(this.PLList);\n\n }).catch(function () {});\n },\n //产线类型变更\n ptypeselectChange: function ptypeselectChange() {\n var _this14 = this;\n\n this.$forceUpdate();\n this.listQuery.productLine = ""; //console.log(this.listQuery.productType);\n //console.log(this.PLChildList)\n\n this.PLChildList = this.PLList.filter(function (u) {\n return u.productType === parseInt(_this14.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n }); //console.log(this.PLList)\n //console.log(this.listQuery.productType)\n //console.log(this.PLChildList)\n },\n //获取车型\n getvehicleModel: function getvehicleModel() {\n var _this15 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this15.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n leftclick: function leftclick() {\n this.$forceUpdate();\n var obj = {};\n obj.erpAssemblyCode = this.form.erpAssemblyCode;\n obj.erpAssemblyName = this.form.erpAssemblyName;\n obj.vehicleModel = this.form.vehicleModelCode;\n\n if (this.form.leftdetails === undefined) {\n this.form.leftdetails = [];\n }\n\n this.form.leftdetails.push(obj);\n },\n rightclick: function rightclick() {}\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_m100BIllvue_type_script_lang_js_ = (m100BIllvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=style&index=0&id=e45a1592&lang=scss&scoped=true&\nvar m100BIllvue_type_style_index_0_id_e45a1592_lang_scss_scoped_true_ = __webpack_require__("01d5");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar m100BIll_component = Object(componentNormalizer["a" /* default */])(\n basedate_m100BIllvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "e45a1592",\n null\n \n)\n\n/* harmony default export */ var m100BIll = __webpack_exports__["default"] = (m100BIll_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9kOTYzIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvbTEwMEJJbGwvZGV0YWlsLnZ1ZT80NmUyIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/ZDgxZSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/YWY5MiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/MGNhMyIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9tMTAwQklsbC9pbmRleC52dWU/ZTg0YSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9mNDZlIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvbTEwMEJJbGwvaW5kZXgudnVlPzA4MmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsT0FBTyxxQ0FBcUMsa0JBQWtCLGFBQWEsc0JBQXNCLFFBQVEsbURBQW1ELEtBQUssK0JBQStCLFFBQVEsMkRBQTJELDRDQUE0QyxxQ0FBcUMsNkNBQTZDLHVCQUF1QixtQkFBbUIsbUNBQW1DLEVBQUUsNEJBQTRCLE9BQU8saUNBQWlDLGtCQUFrQixhQUFhLHNCQUFzQixRQUFRLG1EQUFtRCxLQUFLLCtCQUErQixRQUFRLDJEQUEyRCw0Q0FBNEMscUNBQXFDLHlDQUF5Qyx1QkFBdUIsbUJB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RyxnQkFBZ0IsOENBQVU7QUFDMUIsRUFBRSx1Q0FBTTtBQUNSLEVBQUUsc0RBQU07QUFDUixFQUFFLCtEQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVlLDREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2lpQmY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBLGVBQ0E7QUFBQTtBQUFBO0FBQUEsQ0FEQSxFQUVBO0FBQUE7QUFBQTtBQUFBLENBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQSxDQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0EsQ0FIQSxFQUdBLEVBSEE7QUFLQTtBQUNBLGtCQURBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBRkE7QUFHQTtBQUFBO0FBQUEsR0FI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eUNBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsZ0dBQVMsUSIsImZpbGUiOiJjZWFlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZGl2Jyx7cmVmOlwiYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwiY29udGVudC1oZWFkZXJcIn0sW19jKCdlbC1mb3JtJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd1NlYXJjaCksZXhwcmVzc2lvbjpcInNob3dTZWFyY2hcIn1dLHJlZjpcInF1ZXJ5Rm9ybVwiLGF0dHJzOntcIm1vZGVsXCI6X3ZtLmxpc3RRdWVyeSxcImlubGluZVwiOnRydWV9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLnlJ/kuqfnur86XCIsXCJwcm9wXCI6XCJwcm9kdWN0VHlwZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0ucHR5cGVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwicHJvZHVjdFR5cGVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5wcm9kdWN0VHlwZVwifX0sX3ZtLl9sKChfdm0ucHJvZHVjdFR5cGVMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmlkfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiXCIsXCJwcm9wXCI6XCJwcm9kdWN0TGluZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0udmFsdWVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5wcm9kdWN0TGluZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwicHJvZHVjdExpbmVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5wcm9kdWN0TGluZVwifX0sX3ZtLl9sKChfdm0uUExDaGlsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLnByb2R1Y3RMaW5lTmFtZSxcInZhbHVlXCI6aXRlbS5wcm9kdWN0TGluZUNvZGV9fSl9KSwxKV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLniYjmnKw6XCIsXCJwcm9wXCI6XCJWZXJzaW9uXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZlcnNpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZlcnNpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WZXJzaW9uXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3OlwiLFwicHJvcFwiOlwiSG9zdFNOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJIb3N0U05FbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNORW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJIb3N0U05FbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5Ib3N0U05FbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCJLTlI6XCIsXCJwcm9wXCI6XCJLTlJCZWdpblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5LTlJCZWdpbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiS05SQmVnaW5cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5LTlJCZWdpblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIi1cIixcInByb3BcIjpcIktOUkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5LTlJFbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIktOUkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LktOUkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuW6leebmOWPtzpcIixcInByb3BcIjpcIlZJTkJlZ2luXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZJTkJlZ2luKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWSU5CZWdpblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZJTkJlZ2luXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiLVwiLFwicHJvcFwiOlwiVklORW5kXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZJTkVuZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVklORW5kXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVklORW5kXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5LiK57q/5pel5pyfXCJ9fSxbX2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM4MHB4XCJ9LGF0dHJzOntcInNpemVcIjpcInNtYWxsXCIsXCJ2YWx1ZS1mb3JtYXRcIjpcInl5eXktTU0tZGQgSEg6bW06c3NcIixcInR5cGVcIjpcImRhdGV0aW1lcmFuZ2VcIixcImRlZmF1bHQtdGltZVwiOlsnMDA6MDA6MDAnLCcyMzo1OTo1OSddLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuT25saW5lVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJPbmxpbmVUaW1lVmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5PbmxpbmVUaW1lVmFsdWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLmjqXmlLbml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzgwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwidHlwZVwiOlwiZGF0ZXRpbWVyYW5nZVwiLFwiZGVmYXVsdC10aW1lXCI6WycwMDowMDowMCcsJzIzOjU5OjU5J10sXCJyYW5nZS1zZXBhcmF0b3JcIjpcIi1cIixcInN0YXJ0LXBsYWNlaG9sZGVyXCI6XCLlvIDlp4vml6XmnJ9cIixcImVuZC1wbGFjZWhvbGRlclwiOlwi57uT5p2f5pel5pyfXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJSZWNlaXZlVGltZVZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuUmVjZWl2ZVRpbWVWYWx1ZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tc2VhcmNoXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUZpbHRlcn19LFtfdm0uX3YoXCLmkJzntKJcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1wiaWNvblwiOlwiZWwtaWNvbi1yZWZyZXNoXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpfX19LFtfdm0uX3YoXCLph43nva5cIildKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn0sYXR0cnM6e1widHlwZVwiOlwid2FybmluZ1wiLFwicGxhaW5cIjpcIlwiLFwiaWNvblwiOlwiZWwtaWNvbi1kb3dubG9hZFwiLFwic2l6ZVwiOlwibWluaVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEb3dubG9hZCgpfX19LFtfdm0uX3YoXCLlr7zlh7ooRXhjZWwpIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWJvdHRvbVwiOlwiMHB4XCIsXCJtYXJnaW4tdG9wXCI6XCItMXB4XCJ9fSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ3JlYXRlfX0sW192bS5fdihcIuaWsOWiniBcIildKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItaXRlbVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tZWRpdFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVVcGRhdGV9fSxbX3ZtLl92KFwi5L+u5pS5IFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1kZWxldGVcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRGVsZXRlfX0sW192bS5fdihcIuWIoOmZpCBcIildKV0sMSldLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibC10YWJsZVwiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi05cHhcIn19LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcImxhYmVsXCI6XCLlupXnm5jlj7dcIixcInByb3BcIjpcInZpbiBcIixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxODBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cudmluKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMiksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nRm9ybVZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpfdm0uZm9ybVRpdGxlLFwid2lkdGhcIjpcIjEwMDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ0Zvcm1WaXNpYmxlPSRldmVudH19fSxbX2MoJ2VsLWZvcm0nLHtyZWY6XCJmb3JtXCIsYXR0cnM6e1wiaW5saW5lXCI6dHJ1ZSxcIm1vZGVsXCI6X3ZtLmZvcm0sXCJydWxlc1wiOl92bS5ydWxlcyxcInNpemVcIjpcInNtYWxsXCIsXCJsYWJlbC13aWR0aFwiOlwiMTIwcHhcIn19LFtfYygnZWwtcm93JyxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxMn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIktOUjpcIixcInByb3BcIjpcImtuclwiLFwicmVxdWlyZWRcIjpcIlwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqea3u+WKoE0xMDDkv6Hmga/lr7nlupTnmoRLTlLlj7dcIixcImZpbHRlcmFibGVcIjpcIlwiLFwiZGlzYWJsZWRcIjpmYWxzZX0sb246e1wiY2hhbmdlXCI6X3ZtLmdldFZNb2RlbH0sbW9kZWw6e3ZhbHVlOihfdm0uZm9ybS5rbnIpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0uZm9ybSwgXCJrbnJcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm0ua25yXCJ9fSxfdm0uX2woKF92bS5LTlJsaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmtucixhdHRyczp7XCJsYWJlbFwiOml0ZW0ua25yLFwidmFsdWVcIjppdGVtLmtucn19KX0pLDEpXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi6L2m5Z6LOlwiLFwicHJvcFwiOlwidmVoaWNsZU1vZGVsQ29kZVwiLFwicmVxdWlyZWRcIjpcIlwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1wiZGlzYWJsZWRcIjpmYWxzZX0sb246e1wiY2hhbmdlXCI6X3ZtLnZNY2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5mb3JtLnZlaGljbGVNb2RlbENvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0uZm9ybSwgXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZlaGljbGVNb2RlbENvZGVcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpXSwxKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5bqV55uY5Y+3OlwiLFwicHJvcFwiOlwidmluXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM1MHB4XCJ9LGF0dHJzOntcImRpc2FibGVkXCI6ZmFsc2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0udmluKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwidmluXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZpblwifX0pXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3OlwiLFwicHJvcFwiOlwiaG9zdFNOXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM1MHB4XCJ9LGF0dHJzOntcImRpc2FibGVkXCI6ZmFsc2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0uaG9zdFNOKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwiaG9zdFNOXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLmhvc3RTTlwifX0pXSwxKV0sMSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxMn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuS4iue6v+aXpeacnzpcIixcInByb3BcIjpcIm9ubGluZVRpbWVcIixcInJlcXVpcmVkXCI6XCJcIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1widHlwZVwiOlwiZGF0ZXRpbWVcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwicGxhY2Vob2xkZXJcIjpcIumAieaLqeaXtumXtFwiLFwiZGlzYWJsZWRcIjpmYWxzZX0sbW9kZWw6e3ZhbHVlOihfdm0uZm9ybS5vbmxpbmVUaW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwib25saW5lVGltZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybS5vbmxpbmVUaW1lXCJ9fSldLDEpXSwxKV0sMSksX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MTJ9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4IHNvbGlkICNFNEU0RTRcIixcIndpZHRoXCI6XCI5NCVcIn19LFtfYygnZWwtcm93JyxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJhY2tncm91bmRcIjpcIiNGMUYxRjFcIixcIndpZHRoXCI6XCIxMDAlXCIsXCJoZWlnaHRcIjpcIjMwcHhcIixcImxpbmUtaGVpZ2h0XCI6XCIzMXB4XCJ9fSxbX2MoJ2xhYmVsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn19LFtfdm0uX3YoXCJFUlDmgLvmiJBcIildKV0pXSksX2MoJ2VsLXJvdycsW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIkxlZnREZXRpYWxUYWJsZVwiLHN0YXRpY0NsYXNzOlwiY3ItdGFibGVcIixzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiOTUlXCIsXCJtYXJnaW5cIjpcIjEwcHhcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5mb3JtLmxlZnRkZXRhaWxzLFwiaGVpZ2h0XCI6X3ZtLmRldGFpbFRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInJvdy1jbGlja1wiOl92bS5oYW5kbGVMZWZ0Um93Q2xpY2ssXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZUxlZnRTZWxlY3Rpb25DaGFuZ2V9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImVycEFzc2VtYmx5Q29kZVwiLFwibGFiZWxcIjpcIkVSUOaAu+aIkOe8luWPt1wiLFwid2lkdGhcIjpcIjE1MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTM1cHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5lcnBBc3NlbWJseUNvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChzY29wZS5yb3csIFwiZXJwQXNzZW1ibHlDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cuZXJwQXNzZW1ibHlDb2RlXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseU5hbWVcIixcImxhYmVsXCI6XCJFUlDmgLvmiJDlkI3np7BcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dCcse2F0dHJzOntcInNpemVcIjpcIm1pbmlcIn0sbW9kZWw6e3ZhbHVlOihzY29wZS5yb3cuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcImVycEFzc2VtYmx5TmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmVycEFzc2VtYmx5TmFtZVwifX0pXX19XSl9KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wid2lkdGhcIjpcIjM1cHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUxlZnREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KX19fSldfX1dKX0sW19jKCd0ZW1wbGF0ZScse3Nsb3Q6XCJoZWFkZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkTGVmdERldGFpbHN9fSldLDEpXSwyKV0sMSldLDEpXSwxKV0pLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MTJ9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4IHNvbGlkICNFNEU0RTRcIixcIndpZHRoXCI6XCI5NCVcIn19LFtfYygnZWwtcm93JyxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJhY2tncm91bmRcIjpcIiNGMUYxRjFcIixcIndpZHRoXCI6XCIxMDAlXCIsXCJoZWlnaHRcIjpcIjMwcHhcIixcImxpbmUtaGVpZ2h0XCI6XCIzMXB4XCJ9fSxbX2MoJ2xhYmVsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn19LFtfdm0uX3YoXCJFUlDnu5Pnrpfku7ZcIildKV0pXSksX2MoJ2VsLXJvdycsW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIkRldGlhbFRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI5NSVcIixcIm1hcmdpblwiOlwiMTBweFwifSxhdHRyczp7XCJlbGVtZW50LWxvYWRpbmctdGV4dFwiOlwi5ou85ZG95Yqg6L295LitLi4uXCIsXCJlbGVtZW50LWxvYWRpbmctc3Bpbm5lclwiOlwiZWwtaWNvbi1sb2FkaW5nXCIsXCJkYXRhXCI6X3ZtLmZvcm0ucmlnaHRkZXRhaWxzLFwiaGVpZ2h0XCI6X3ZtLmRldGFpbFRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCIsXCJ3aWR0aFwiOlwiMTUwcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMzVweFwifSxhdHRyczp7XCJzaXplXCI6XCJtaW5pXCJ9LG1vZGVsOnt2YWx1ZTooc2NvcGUucm93LnBhcnRDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcInBhcnRDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cucGFydENvZGVcIn19KV19fV0pfSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImRlc2NyaXB0aW9uXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25ZCN56ewXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHthdHRyczp7XCJzaXplXCI6XCJtaW5pXCJ9LG1vZGVsOnt2YWx1ZTooc2NvcGUucm93LmRlc2NyaXB0aW9uKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcImRlc2NyaXB0aW9uXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cuZGVzY3JpcHRpb25cIn19KV19fV0pfSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIixcIndpZHRoXCI6XCIxMjBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWlucHV0LW51bWJlcicse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDBweFwifSxhdHRyczp7XCJtaW5cIjoxLFwic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5wYXJ0TnVtKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcInBhcnROdW1cIiwgJCR2KX0sZXhwcmVzc2lvbjpcInNjb3BlLnJvdy5wYXJ0TnVtXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJ3aWR0aFwiOlwiMzVweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tbWludXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlUmlnaHREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KX19fSldfX1dKX0sW19jKCd0ZW1wbGF0ZScse3Nsb3Q6XCJoZWFkZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkUmlnaHREZXRhaWxzfX0pXSwxKV0sMildLDEpXSwxKV0sMSldKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJsb2FkaW5nXCIscmF3TmFtZTpcInYtbG9hZGluZ1wiLHZhbHVlOihfdm0uZm9ybUxvYWRpbmcpLGV4cHJlc3Npb246XCJmb3JtTG9hZGluZ1wifV0sYXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOl92bS5zYXZlfX0sW192bS5fdihcIuehruiupFwiKV0pXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInRhYmxlLWZvb3RlclwifSxbX2MoJ3BhZ2luYXRpb24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS50b3RhbENvdW50ID4gMCksZXhwcmVzc2lvbjpcInRvdGFsQ291bnQgPiAwXCJ9XSxhdHRyczp7XCJ0b3RhbFwiOl92bS50b3RhbENvdW50LFwicGFnZVwiOl92bS5wYWdlLFwibGltaXRcIjpfdm0ubGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50fSxvbjp7XCJ1cGRhdGU6cGFnZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnBhZ2U9JGV2ZW50fSxcInVwZGF0ZTpsaW1pdFwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS4kc2V0KF92bS5saXN0UXVlcnksIFwiTWF4UmVzdWx0Q291bnRcIiwgJGV2ZW50KX0sXCJwYWdpbmF0aW9uXCI6X3ZtLmdldExpc3R9fSksX2MoJ2VsLWRyYXdlcicse2F0dHJzOntcInRpdGxlXCI6XCLkv6Hmga/or6bnu4bpobVcIixcInNpemVcIjpcIjc1JVwiLFwiZGlyZWN0aW9uXCI6XCJydGxcIixcInZpc2libGVcIjpfdm0uZHJhd2VyLFwiYmVmb3JlLWNsb3NlXCI6X3ZtLmhhbmRsZURyYXdlckNsb3NlfSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRyYXdlcj0kZXZlbnR9fX0sW19jKCdkaXYnLFtfYygnRGV0YWlsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXRvcFwiOlwiLTM1cHhcIn0sYXR0cnM6e1wiY3VzdG9tZXJJbmZvc1wiOl92bS5jdXN0b21lckluZm9zfX0pXSwxKV0pXSwxKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjci1ib2R5LWNvbnRlbnRcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCIsXCJyb3cta2V5XCI6X3ZtLmdldFJvd0tleXMsXCJleHBhbmQtcm93LWtleXNcIjpfdm0uZXhwYW5kc30sb246e1wic29ydC1jaGFuZ2VcIjpfdm0uc29ydENoYW5nZSxcInNlbGVjdGlvbi1jaGFuZ2VcIjpfdm0uaGFuZGxlU2VsZWN0aW9uQ2hhbmdlLFwicm93LWNsaWNrXCI6X3ZtLmhhbmRsZVJvd0NsaWNrLFwiZXhwYW5kLWNoYW5nZVwiOl92bS5leENoYW5nZX19LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwiZXhwYW5kXCIsXCJwcm9wXCI6XCJkZXRhaWxzXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtdGFibGUnLHthdHRyczp7XCJkYXRhXCI6c2NvcGUucm93LmRldGFpbHN9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZGVzY3JpcHRpb25cIixcImxhYmVsXCI6XCLmj4/ov7BcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gWyhzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZSk/X2MoJ3NwYW4nLFtfYygnc3Bhbicse3N0YXRpY1N0eWxlOntcImNvbG9yXCI6XCIjMDBiNDZkXCJ9fSxbX3ZtLl92KFwi5pivXCIpXSldKTpfYygnc3BhbicsW19jKCdzcGFuJyx7c3RhdGljU3R5bGU6e1wiY29sb3JcIjpcIiNkNzVjODlcIn19LFtfdm0uX3YoXCLlkKZcIildKV0pXX19XSxudWxsLHRydWUpfSldLDEpXX19XSl9KSxfdm0uX2woKF92bS5nZXREZWZhdWx0RmllbGQpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiBfYygnZWwtdGFibGUtY29sdW1uJyx7a2V5OmluZGV4LGF0dHJzOntcInByb3BcIjppdGVtLnByb3AsXCJsYWJlbFwiOml0ZW0ubGFiZWwsXCJtaW4td2lkdGhcIjppdGVtLndpZHRoLFwiZm9ybWF0dGVyXCI6X3ZtLmZpZWxkRm9ybWF0dGVyLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwic2hvdy1vdmVyZmxvdy10b29sdGlwXCI6XCJcIixcImd1dHRlclwiOjB9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImhlYWRlclwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW192bS5fdihcIiBcIitfdm0uX3Moc2NvcGUuY29sdW1uLmxhYmVsKStcIiBcIildfX1dLG51bGwsdHJ1ZSl9KX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseVZlcnNpb25cIixcImxhYmVsXCI6XCLmgLvmiJDniYjmnKzlj7dcIixcInNvcnRhYmxlXCI6XCJcIixcIndpZHRoXCI6XCIzNjBcIn19KV0sMiksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0tTTEwMOS4iue6v+S/oeaBry3mmI7nu4bmlbDmja4tLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgIDxlbC10YWJsZVxyXG4gICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBzdHJpcGVcclxuICAgICAgYm9yZGVyXHJcbiAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgOnJvdy1rZXk9XCJnZXRSb3dLZXlzXCJcclxuICAgICAgOmV4cGFuZC1yb3cta2V5cz1cImV4cGFuZHNcIlxyXG4gICAgICBAZXhwYW5kLWNoYW5nZT1cImV4Q2hhbmdlXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDwhLS0gPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHByb3A9XCLmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgIGxhYmVsPVwiZXJwQXNzZW1ibHlOYW1lXCJcclxuICAgICAgICBzb3J0YWJsZVxyXG4gICAgICAgIHdpZHRoPVwiMTgwXCJcclxuICAgICAgPlxyXG4gICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHByb3A9XCJlcnBBc3NlbWJseVZlcnNpb25cIlxyXG4gICAgICAgIGxhYmVsPVwi5oC75oiQ54mI5pys5Y+3XCJcclxuICAgICAgICBzb3J0YWJsZVxyXG4gICAgICAgIHdpZHRoPVwiMTgwXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSAtIDQ3cHgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0d28tbGlzdFwiXHJcbiAgICAgIDwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuXHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cImV4cGFuZFwiIHByb3A9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgPGVsLXRhYmxlIDpkYXRhPVwic2NvcGUucm93LmRldGFpbHNcIj5cclxuICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgIHByb3A9XCJwYXJ0Q29kZVwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLlrqLmiLfpm7bku7bku6PnoIFcIlxyXG4gICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgICAgICBwcm9wPVwicGFydE51bVwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLlrqLmiLfpm7bku7bmlbDph49cIlxyXG4gICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLmj4/ov7BcIj48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiaXNLZXlcIiBsYWJlbD1cIuaYr+WQpktleeS7tlwiPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDBiNDZkXCI+5pivPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjZDc1Yzg5XCI+5ZCmPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgPC9lbC10YWJsZT5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgOnByb3A9XCJpdGVtLnByb3BcIlxyXG4gICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgIDptaW4td2lkdGg9XCJpdGVtLndpZHRoXCJcclxuICAgICAgICA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIlxyXG4gICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICA6Z3V0dGVyPVwiMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAge3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcbiAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICBwcm9wPVwiZXJwQXNzZW1ibHlWZXJzaW9uXCJcclxuICAgICAgICBsYWJlbD1cIuaAu+aIkOeJiOacrOWPt1wiXHJcbiAgICAgICAgc29ydGFibGVcclxuICAgICAgICB3aWR0aD1cIjM2MFwiXHJcbiAgICAgID5cclxuICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICA8L2VsLXRhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWZvb3RlclwiPlxyXG4gICAgICA8IS0tIOWIhumhteaOp+S7tiBzdHlsZT1cIm1hcmdpbi10b3A6IC0yNXB4O21hcmdpbi1ib3R0b206LTI1cHg7ZmxvYXQ6cmlnaHQ7XCItLT5cclxuICAgICAgPHBhZ2luYXRpb25cclxuICAgICAgICB2LXNob3c9XCJ0b3RhbENvdW50ID4gMFwiXHJcbiAgICAgICAgOnRvdGFsPVwidG90YWxDb3VudFwiXHJcbiAgICAgICAgOnBhZ2Uuc3luYz1cInBhZ2VcIlxyXG4gICAgICAgIDpsaW1pdC5zeW5jPVwibGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50XCJcclxuICAgICAgICBAcGFnaW5hdGlvbj1cImdldExpc3RcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjsgLy8gc2Vjb25kYXJ5IHBhY2thZ2UgYmFzZWQgb24gZWwtcGFnaW5hdGlvblxyXG5pbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5pbXBvcnQgQ1JNVGFibGVIZWFkIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NSTVRhYmxlSGVhZFwiO1xyXG5pbXBvcnQgeyBkb3dubG9hZEZpbGUgfSBmcm9tIFwiQC91dGlscy9jcm1pbmRleC5qc1wiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwic2VuZFVuc2V0dGxlZERpZmZSZXBvcnRcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgRGV0YWlsIH0sXHJcbiAgZGlyZWN0aXZlczogeyBwZXJtaXNzaW9uIH0sXHJcbiAgZmlsdGVyczoge1xyXG4gICAgSXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcbiAgICAgIC8v57+76K+R5piv5ZCm562+5a2XXHJcbiAgICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcclxuICAgICAgICB0cnVlOiBcIuaYr1wiLFxyXG4gICAgICAgIGZhbHNlOiBcIuWQplwiLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGN1c3RvbWVySW5mb3M6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNybVR5cGU6IFwic3RvY2tGaXNEaWZmUmVwb3J0XCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgLy/liY3nq6/lrprkuYnnmoTop4TliJnvvIzlkI7nq6/kuZ/mnInpqozor4FcclxuICAgICAgICBlcnBNYXRlcmlhbENvZGU6IFtcclxuICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IFwi5b+F6aG76L6T5YWl77yBXCIsIHRyaWdnZXI6IFwiYmx1clwiIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgZXhwYW5kczogW10sIC8v5Y+q5bGV5byA5LiA6KGM5pS+5YWl5b2T5YmN6KGMaWRcclxuICAgICAgZ2V0Um93S2V5czogKHJvdykgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3cuaWQ7IC8v6L+Z6YeM55yL6L+Z5LiA6KGM5Lit6ZyA6KaB5qC55o2u5ZOq5Liq5bGe5oCn5YC85pivaWRcclxuICAgICAgfSxcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIHBhcmVudElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtOiB7XHJcbiAgICAgICAgZGljRGV0YWlsSUQ6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXJJZDogXCJcIixcclxuICAgICAgICBwcm9qZWN0SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIEZpbHRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbG9naWM6IDAsXHJcbiAgICAgICAgICAgIGNvbHVtbjogXCJFbmFibGVkXCIsXHJcbiAgICAgICAgICAgIGFjdGlvbjogMCxcclxuICAgICAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxyXG4gICAgICAgICAgfSwgLy/pu5jorqTmn6Xor6Llj6/nlKjnmoRcclxuICAgICAgICBdLFxyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgaWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhZ2U6IDEsXHJcbiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0zMCAsXHJcbiAgICAgIGlzRWRpdDogZmFsc2VcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgc2VsZi50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIDMwO1xyXG4gICAgfTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLmdldExpc3QoKTtcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIGhhbmRsZXIobmV3VmFsKSB7XHJcbiAgICAgICAgaWYgKG5ld1ZhbCA9PSBcIlwiIHx8IG5ld1ZhbCA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAvL1RPRE9cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3VmFsLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgPSBlbGVtZW50LlBhcmVudElkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgIT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLyoqIOWIl+ihqOWtl+autSAqL1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICB2YXIgdGVtcHNUYWJzID0gW107XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmgLvmiJDnvJblj7dcIixcclxuICAgICAgICBwcm9wOiBcImVycEFzc2VtYmx5Q29kZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxNjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5oC75oiQ5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuICAgICAgICB3aWR0aDogMTYwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuaAu+aIkOeJiOacrOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwiZXJwQXNzZW1ibHlOYW1lXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE2MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZXhDaGFuZ2Uocm93LCByb3dMaXN0KSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgIGlmIChyb3dMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgIHRoYXQuZXhwYW5kcy5wdXNoKHJvdy5pZCk7IC8vIOWPquWxleW8gOW9k+WJjeihjGlkXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgY29uc29sZS5sb2coXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIC8vYWxlcnQoXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIGxldCB2ZWhpY2xlQXNzZW1ibHlJZCA9IHsgdmVoaWNsZUFzc2VtYmx5SWQ6IHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkIH07XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctdmVoaWNsZS9saXN0XCIsIHZlaGljbGVBc3NlbWJseUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHJlc2V0UXVlcnkoKSB7fSxcclxuXHJcbiAgICBzb3J0Q2hhbmdlKGRhdGEpIHtcclxuICAgICAgY29uc3QgeyBwcm9wLCBvcmRlciB9ID0gZGF0YTtcclxuICAgICAgaWYgKCFwcm9wIHx8ICFvcmRlcikge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJsZWZ0XCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLbooajlpLRzdHlsZSAqL1xyXG4gICAgaGVhZGVyUm93U3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjI0MzI0Zjcmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjI0MzI0ZjcmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIyMjQzMjRmN1wiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3mgLvmiJDmqKHlnZfkv6Hmga/nrqHnkIbpobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICA8ZmxleGJveCBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCIgPlxyXG4gICAgICA8ZWwtZm9ybVxyXG4gICAgICAgIDptb2RlbD1cImxpc3RRdWVyeVwiXHJcbiAgICAgICAgcmVmPVwicXVlcnlGb3JtXCJcclxuICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICA6aW5saW5lPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi55Sf5Lqn57q/OlwiIHByb3A9XCJwcm9kdWN0VHlwZVwiPlxyXG4gICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnByb2R1Y3RUeXBlXCJcclxuICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNXB4XCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cInB0eXBlc2VsZWN0Q2hhbmdlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHByb2R1Y3RUeXBlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5pZFwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5pZFwiIC8+ICBcclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJcIiBwcm9wPVwicHJvZHVjdExpbmVcIj5cclxuICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5wcm9kdWN0TGluZVwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgIEBjaGFuZ2U9XCJ2YWx1ZXNlbGVjdENoYW5nZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBQTENoaWxkTGlzdFwiXHJcbiAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5wcm9kdWN0TGluZU5hbWVcIlxyXG4gICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiLz5cclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLniYjmnKw6XCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3OlwiIHByb3A9XCJIb3N0U05CZWdpblwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIkhvc3RTTkVuZFwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNORW5kXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjQwcHhcIlxyXG4gICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIktOUjpcIiBwcm9wPVwiS05SQmVnaW5cIiA+XHJcbiAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJCZWdpblwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIi1cIiBwcm9wPVwiS05SRW5kXCI+XHJcbiAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJFbmRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiIHByb3A9XCJWSU5CZWdpblwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIlZJTkVuZFwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklORW5kXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjQwcHhcIlxyXG4gICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuS4iue6v+aXpeacn1wiPlxyXG4gICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuT25saW5lVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIlxyXG4gICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIiA6ZGVmYXVsdC10aW1lPVwiWycwMDowMDowMCcsJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgIDwhLS0gPC9lbC1yb3c+IC0tPlxyXG4gICAgICA8IS0tIDxlbC1yb3c+IC0tPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmjqXmlLbml6XmnJ9cIiA+XHJcbiAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIlxyXG4gICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIiA6ZGVmYXVsdC10aW1lPVwiWycwMDowMDowMCcsJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICAgICAgPuaQnOe0ojwvZWwtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLXJlZnJlc2hcIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCJcclxuICAgICAgICAgICAgPumHjee9rjwvZWwtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcclxuICAgICAgICAgICAgcGxhaW5cclxuICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZG93bmxvYWRcIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDE1cHhcIlxyXG4gICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICAgICAgPuWvvOWHuihFeGNlbClcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgICA8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjFcIiA+PC9lbC1kaXZpZGVyPiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMHB4O21hcmdpbi10b3A6IC0xcHhcIj5cclxuICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItaXRlbVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1wbHVzXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ3JlYXRlXCJcclxuICAgICAgICAgICAgPuaWsOWinlxyXG4gICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWl0ZW1cIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVVwZGF0ZVwiXHJcbiAgICAgICAgICAgID7kv67mlLlcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZVwiXHJcbiAgICAgICAgICAgID7liKDpmaRcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8L2VsLWZvcm0+XHJcbiAgICA8L2ZsZXhib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJsLXRhYmxlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOXB4XCI+XHJcbiAgICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgICAgPGVsLXRhYmxlXHJcbiAgICAgICAgcmVmPVwibXVsdGlwbGVUYWJsZVwiXHJcbiAgICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgICBlbGVtZW50LWxvYWRpbmctc3Bpbm5lcj1cImVsLWljb24tbG9hZGluZ1wiXHJcbiAgICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgICAgOmRhdGE9XCJsaXN0XCJcclxuICAgICAgICA6aGVpZ2h0PVwidGFibGVIZWlnaHRcIlxyXG4gICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBzdHJpcGVcclxuICAgICAgICBib3JkZXJcclxuICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgICBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIGxhYmVsPVwi5bqV55uY5Y+3XCJcclxuICAgICAgICAgIHByb3A9XCJ2aW4gXCJcclxuICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgd2lkdGg9XCIxODBweFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmstdHlwZVwiIEBjbGljaz1cImhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KVwiPnt7XHJcbiAgICAgICAgICAgICAgc2NvcGUucm93LnZpblxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGdldERlZmF1bHRGaWVsZFwiXHJcbiAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgOnByb3A9XCJpdGVtLnByb3BcIlxyXG4gICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICA6bWluLXdpZHRoPVwiaXRlbS53aWR0aFwiXHJcbiAgICAgICAgICA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgc29ydGFibGU9XCJjdXN0b21cIlxyXG4gICAgICAgICAgc2hvdy1vdmVyZmxvdy10b29sdGlwXHJcbiAgICAgICAgICA6Z3V0dGVyPVwiMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJoZWFkZXJcIiBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAge3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICA8L2VsLXRhYmxlPlxyXG5cclxuICAgICAgPCEtLeihqOWNlea4suafky0tPlxyXG4gICAgICA8ZWwtZGlhbG9nXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ0Zvcm1WaXNpYmxlXCJcclxuICAgICAgICA6Y2xvc2Utb24tY2xpY2stbW9kYWw9XCJmYWxzZVwiXHJcbiAgICAgICAgOnRpdGxlPVwiZm9ybVRpdGxlXCJcclxuICAgICAgICB3aWR0aD1cIjEwMDBweFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgcmVmPVwiZm9ybVwiXHJcbiAgICAgICAgICA6aW5saW5lPVwidHJ1ZVwiXHJcbiAgICAgICAgICA6bW9kZWw9XCJmb3JtXCJcclxuICAgICAgICAgIDpydWxlcz1cInJ1bGVzXCJcclxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICBsYWJlbC13aWR0aD1cIjEyMHB4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiS05SOlwiIHByb3A9XCJrbnJcIiByZXF1aXJlZCA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0ua25yXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nmt7vliqBNMTAw5L+h5oGv5a+55bqU55qES05S5Y+3XCJcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyYWJsZVxyXG4gICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJnZXRWTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIEtOUmxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmtuclwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5rbnJcIlxyXG4gICAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0ua25yXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgPC9lbC1yb3c+XHJcblxyXG4gICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjEyXCI+XHJcbiAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWeizpcIiBwcm9wPVwidmVoaWNsZU1vZGVsQ29kZVwiIHJlcXVpcmVkID5cclxuICAgICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzUwcHhcIlxyXG4gICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS52ZWhpY2xlTW9kZWxDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBAY2hhbmdlPVwidk1jaGFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiICBwcm9wPVwidmluXCIgcmVxdWlyZWQgPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0udmluXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuXHJcbiAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3OlwiICBwcm9wPVwiaG9zdFNOXCIgcmVxdWlyZWQgPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uaG9zdFNOXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ86XCIgcHJvcD1cIm9ubGluZVRpbWVcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLm9ubGluZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzUwcHhcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lXCJcclxuICAgICAgICAgICAgICAgIHZhbHVlLWZvcm1hdD1cInl5eXktTU0tZGQgSEg6bW06c3NcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLpgInmi6nml7bpl7RcIlxyXG4gICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2VsLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgIDwvZWwtcm93PlxyXG5cclxuICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNFNEU0RTQ7d2lkdGg6OTQlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDojRjFGMUYxO3dpZHRoOjEwMCU7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzFweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNXB4XCI+RVJQ5oC75oiQPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cIkxlZnREZXRpYWxUYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LWxvYWRpbmctc3Bpbm5lcj1cImVsLWljb24tbG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmRhdGE9XCJmb3JtLmxlZnRkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVpZ2h0PVwiZGV0YWlsVGFibGVIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiA5NSU7bWFyZ2luOjEwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJoYW5kbGVMZWZ0Um93Q2xpY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlTGVmdFNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJlcnBBc3NlbWJseUNvZGVcIiBsYWJlbD1cIkVSUOaAu+aIkOe8luWPt1wiIHdpZHRoPVwiMTUwcHhcIiA+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5lcnBBc3NlbWJseUNvZGVcIiBzaXplPVwibWluaVwiIHN0eWxlPVwid2lkdGg6MTM1cHhcIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJlcnBBc3NlbWJseU5hbWVcIiBsYWJlbD1cIkVSUOaAu+aIkOWQjeensFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5lcnBBc3NlbWJseU5hbWVcIiBzaXplPVwibWluaVwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPiBcclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uICB3aWR0aD1cIjM1cHhcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZUFkZExlZnREZXRhaWxzXCIgaWNvbj1cImVsLWljb24tcGx1c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZUxlZnREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLW1pbnVzXCIgdHlwZT1cInRleHRcIj48L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGVsLWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyMlwiICBjb250ZW50LXBvc2l0aW9uPVwibGVmdFwiPua3u+WKoEVSUOaAu+aIkDwvZWwtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJFUlDmgLvmiJDnvJbnoIE6XCIgcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS5lcnBBc3NlbWJseUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIkVSUOaAu+aIkOWQjeensDpcIiBwcm9wPVwiZXJwQXNzZW1ibHlOYW1lXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmVycEFzc2VtYmx5TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi6L2m5Z6LOlwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnZlaGljbGVNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uZGljSXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO21hcmdpbjogMHB4O21hcmdpbi1ib3R0b206IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJsZWZ0Y2xpY2tcIj7mt7vliqDmgLvmiJA8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNFNEU0RTQ7d2lkdGg6OTQlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDojRjFGMUYxO3dpZHRoOjEwMCU7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzFweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNXB4XCI+RVJQ57uT566X5Lu2PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cIkRldGlhbFRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6ZGF0YT1cImZvcm0ucmlnaHRkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVpZ2h0PVwiZGV0YWlsVGFibGVIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiA5NSU7bWFyZ2luOjEwcHhcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydENvZGVcIiBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiIHdpZHRoPVwiMTUwcHhcIiA+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5wYXJ0Q29kZVwiIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJ3aWR0aDoxMzVweFwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLlrqLmiLfpm7bku7blkI3np7BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cuZGVzY3JpcHRpb25cIiBzaXplPVwibWluaVwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPiBcclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJwYXJ0TnVtXCIgbGFiZWw9XCLlrqLmiLfpm7bku7bmlbDph49cIiB3aWR0aD1cIjEyMHB4XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQtbnVtYmVyIHYtbW9kZWw9XCJzY29wZS5yb3cucGFydE51bVwiIDptaW49XCIxXCIgIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJ3aWR0aDoxMDBweFwiPjwvZWwtaW5wdXQtbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHdpZHRoPVwiMzVweFwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gQGNsaWNrPVwiaGFuZGxlQWRkUmlnaHREZXRhaWxzXCIgaWNvbj1cImVsLWljb24tcGx1c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZVJpZ2h0RGVsZXRlRGV0YWlscyhzY29wZS4kaW5kZXgsIHNjb3BlLnJvdylcIiBpY29uPVwiZWwtaWNvbi1taW51c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjJcIiAgY29udGVudC1wb3NpdGlvbj1cImxlZnRcIj7mt7vliqBFUlDnu5Pnrpfku7Y8L2VsLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5a6i5oi36Zu25Lu25Luj56CBOlwiIHByb3A9XCJjdXN0b21lclBhcnRDb2RlXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmN1c3RvbWVyUGFydENvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5a6i5oi36Zu25Lu25Luj56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuWuouaIt+mbtuS7tuWQjeensDpcIiBwcm9wPVwiY3VzdG9tZXJQYXJ0TmFtZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS5jdXN0b21lclBhcnROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImlzRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaAu+aIkOWQjeensFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDph486XCIgcHJvcD1cInBhcnRRdHlcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dC1udW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnBhcnRRdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIDptaW49XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO21hcmdpbjogMHB4O21hcmdpbi1ib3R0b206IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIj7mt7vliqDpm7bku7Y8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICAgIDxkaXYgc2xvdD1cImZvb3RlclwiIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2VcIlxyXG4gICAgICAgICAgICA+5Y+W5raIPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxlbC1idXR0b24gdi1sb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmVcIlxyXG4gICAgICAgICAgICA+56Gu6K6kPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9lbC1kaWFsb2c+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICAgIDwhLS0g5YiG6aG15o6n5Lu2IHN0eWxlPVwibWFyZ2luLXRvcDogLTI1cHg7bWFyZ2luLWJvdHRvbTotMjVweDtmbG9hdDpyaWdodDtcIi0tPlxyXG4gICAgICA8cGFnaW5hdGlvblxyXG4gICAgICAgIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCJcclxuICAgICAgICA6dG90YWw9XCJ0b3RhbENvdW50XCJcclxuICAgICAgICA6cGFnZS5zeW5jPVwicGFnZVwiXHJcbiAgICAgICAgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkuTWF4UmVzdWx0Q291bnRcIlxyXG4gICAgICAgIEBwYWdpbmF0aW9uPVwiZ2V0TGlzdFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgICA8ZWwtZHJhd2VyXHJcbiAgICAgICAgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIlxyXG4gICAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICAgIGRpcmVjdGlvbj1cInJ0bFwiXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRyYXdlclwiXHJcbiAgICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICAgIHYtYmluZDpjdXN0b21lckluZm9zPVwiY3VzdG9tZXJJbmZvc1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogLTM1cHhcIlxyXG4gICAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2VsLWRyYXdlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCBMb2NrciBmcm9tIFwibG9ja3JcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICd2dWV4JztcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWwudnVlXCI7XHJcbmltcG9ydCB7IGRvd25sb2FkRmlsZSB9IGZyb20gXCJAL3V0aWxzL2NybWluZGV4LmpzXCI7XHJcblxyXG4vL+e7hOS7tuiuoemHj+WNleS9jVxyXG5jb25zdCBib21Vbml0ID0gW1xyXG4gIHsga2V5OiAwLCBkaXNwbGF5X25hbWU6IFwiUENcIiB9LFxyXG4gIHsga2V5OiAxLCBkaXNwbGF5X25hbWU6IFwiVE9OXCIgfSxcclxuICB7IGtleTogMiwgZGlzcGxheV9uYW1lOiBcIk90aGVyXCIgfSxcclxuXTtcclxuY29uc3QgcHJvamVjdFR5cGVLZXlWYWx1ZSA9IGJvbVVuaXQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xyXG4gIGFjY1tjdXIua2V5XSA9IGN1ci5kaXNwbGF5X25hbWU7XHJcbiAgcmV0dXJuIGFjYztcclxufSwge30pO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwibTEwMEJpbGxcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgaW1wb3J0RXhjZWwsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICBjb25zdCB2YWxpZFZlcnNpb24gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG4gICAgICBpZiAoIW51bWJlclJlZy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIuWPquiDveS4ujbkvY3mlbDlrZfvvIFcIikpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcIm0xMDBCaWxsXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHZhbHVlU2VsZWN0OiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgZGlhbG9nT3B0aW9uczogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIGZvcm06IHt9LFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBsaXN0OiBudWxsLFxyXG4gICAgICB0b3RhbENvdW50OiAwLFxyXG4gICAgICBsaXN0TG9hZGluZzogdHJ1ZSxcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgYm9tSWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgcHJvZHVjdFR5cGU6IDEsXHJcbiAgICAgICAgUHJvZHVjdExpbmU6IHVuZGVmaW5lZCxcclxuICAgICAgICB2ZXJzaW9uOnVuZGVmaW5lZCxcclxuICAgICAgICBIb3N0U05CZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgSG9zdFNORW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBLTlJCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgS05SRW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBWSU5CZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgVklORW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBPbmxpbmVUaW1lVmFsdWU6dW5kZWZpbmVkLFxyXG4gICAgICAgIE9ubGluZVRpbWVCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUVuZDp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVWYWx1ZTp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVFbmQ6dW5kZWZpbmVkLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgbGlzdEV4cG9ydFF1ZXJ5OiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiB1bmRlZmluZWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RQTFF1ZXJ5OntcclxuICAgICAgICBCaWxsVHlwZTogMixcclxuICAgICAgICAvL1VzZXJJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcclxuICAgICAgfSxcclxuICAgICAga25yUXVlcnk6eyBcclxuICAgICAgICBrbnI6IHVuZGVmaW5lZCxcclxuICAgICAgfSxcclxuICAgICAgZm9ybTpcclxuICAgICAge1xyXG4gICAgICAgIGxlZnRkZXRhaWxzOltdLFxyXG4gICAgICAgIHJpZ2h0ZGV0YWlsczpbXSxcclxuICAgICAgfSxcclxuICAgICAgc2F2ZWZvcm06e1xyXG4gICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGtucjp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICBob3N0U046dW5kZWZpbmVkLFxyXG4gICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICBiaWxsTTEwMFBhcnRzOltdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJwQXNzZW1ibHlMaXN0OlxyXG4gICAgICAgIFtcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgZXJwQXNzZW1ibHlDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgZXJwQXNzZW1ibHlOYW1lOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgdmVoaWNsZU1vZGVsOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgLy9pc0NvdmVyOiB0cnVlLFxyXG4gICAgICAgICAgLy8gICBkZXRhaWxzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAvLyAgICAgLy8ge1xyXG4gICAgICAgICAgLy8gICAgIC8vICAgcGFydENvZGU6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgICAvLyAgIHBhcnROdW06IDEsXHJcbiAgICAgICAgICAvLyAgICAgLy8gICBkZXNjcmlwdGlvbjogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgLy8gICAgIC8vICAgaXNLZXk6IGZhbHNlXHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG4gICAgICAgICAgLy8gfSxcclxuICAgICAgICBdXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gI3JlZ2lvblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgXHJcbiAgICAgICAgKi9cclxuICAgICAgIC8vICAjZW5kcmVnaW9uXHJcbiAgICAgIH0sXHJcbiAgICAgIHJpZ2h0QWxsZGV0YWlsczpbXSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2XHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIGJvbVVuaXQsXHJcbiAgICAgIG11bHRpcGxlU2VsZWN0aW9uOiBbXSxcclxuICAgICAgbXVsdGlwTGVMZWZ0U2VsZWN0aW9uOltdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBkaWFsb2dGb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgaXNFZGl0OiBmYWxzZSxcclxuICAgICAgZm9ybUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDMzNSxcclxuICAgICAgZGV0YWlsVGFibGVIZWlnaHQ6MjUwLFxyXG4gICAgICAvL2RldGFpbHM6W10sIC8v5L+u5pS55a2Q6KGo5pWw5o2u5rqQXHJcbiAgICAgIFBMTGlzdDpbXSwvL+S6p+e6v+S4i+aLiVxyXG4gICAgICBQTENoaWxkTGlzdDpbXSwvL+etm+mAieWQjuS6p+e6v+S4i+aLiVxyXG4gICAgICB2ZWhpY2xlTW9kZWxRdWVyeTp7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6XCLmtL7moLzovablnotcIixcclxuICAgICAgfSxcclxuICAgICAgdmVoaWNsZU1vZGVsTGlzdDpbXSwvL+i9puWei2xpc3RcclxuXHQgICAgcHJvZHVjdFR5cGVMaXN0Olt7aWQ6MSxuYW1lOifpl6jmnb8nfSx7aWQ6MixuYW1lOifmn7HmiqTmnb8nfV0sXHJcbiAgICAgIGdldHRpbWU6XCJcIixcclxuICAgICAgS05SbGlzdDpudWxsLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7IFxyXG4gICAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIC8vY29uc29sZS5sb2cob2Zmc2V0SGVpKTtcclxuICAgICAgICBsZXQgYm94SCA9IHRoaXMuJHJlZnMuYm94Lm9mZnNldEhlaWdodDtcclxuICAgICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7Ly81N+S4umZvb3RlcumrmOW6pu+8jDc55Li66aG16Z2i5LiK6YOo5qCH562+6auY5bqmXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLiRyZWZzLmJveC5vZmZzZXRIZWlnaHQpO1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codGhpcy50YWJsZUhlaWdodCk7XHJcbiAgICB9KTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICAvL3RoaXMuZ2V0S05STGlzdCgpO1xyXG4gICAgdGhpcy5nZXRQcm9kdWN0TGluZSgpO1xyXG4gICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIC8vY29uc29sZS5sb2codGhpcy51c2VySW5mbyk7XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICBcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIua1geawtOWPt1wiLCBwcm9wOiBcInNlcmlhbE51bVwiLCB3aWR0aDogMTAwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIuWkp+S8l+mhuuW6j+WPt1wiLCBwcm9wOiBcImhvc3RTTlwiLCB3aWR0aDogMTIwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwiS05SXCIsXHJcbiAgICAgICAgcHJvcDogXCJrbnJcIixcclxuICAgICAgICB3aWR0aDogMTMwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuW6leebmOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwidmluXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDEzMCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLkuIrnur/ml7bpl7RcIixcclxuICAgICAgICBwcm9wOiBcIm9ubGluZVRpbWVcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIuaOpeaUtuaXtumXtFwiLFxyXG4gICAgICAgIHByb3A6IFwicmVjZWl2ZVRpbWVcIixcclxuICAgICAgICB3aWR0aDogMTgwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIui9puWei+S7o+eggVwiLFxyXG4gICAgICAgIHByb3A6IFwidmVoaWNsZU1vZGVsQ29kZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLph4fpm4bngrlcIixcclxuICAgICAgICBwcm9wOiBcImNvbGxlY3Rpb25Qb2ludFwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5paH5Lu25ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJmaWxlTmFtZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5Lqn57q/XCIsXHJcbiAgICAgICAgcHJvcDogXCJwcm9kdWN0TGluZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICAgIC4uLm1hcEdldHRlcnMoWyd1c2VySW5mbyddKS8v6I635Y+W5b2T5YmN55So5oi35L+h5oGvXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvL+aKveWxiVxyXG4gICAgaGFuZGxlRHJhd2VyT3BlbihwYXJhbSkge1xyXG4gICAgICB0aGlzLmRyYXdlciA9IHRydWU7XHJcbiAgICAgIC8vY29uc29sZS5sb2cocGFyYW0pXHJcbiAgICAgIHZhciBwYXJlbnRJZCA9IHBhcmFtLmFzc2VtYmx5SUQ7IC8v5Li76ZSuaWRcclxuICAgICAgdGhpcy5jdXN0b21lckluZm9zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZURyYXdlckNsb3NlKGRvbmUpIHtcclxuICAgICAgZG9uZSgpO1xyXG4gICAgfSxcclxuICAgIGdldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgICAgIC8v6I635Y+W5b2T5YmN5pe26Ze05bm25omT5Y2wXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBsZXQgeXkgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgbGV0IG1vbnRoID0gIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSsxO1xyXG4gICAgICAgIGxldCBtbSA9IG1vbnRoPDEwID8gJzAnK21vbnRoIDogbW9udGg7XHJcbiAgICAgICAgbGV0IGRkID0gbmV3IERhdGUoKS5nZXREYXRlKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXREYXRlKCkgOiBuZXcgRGF0ZSgpLmdldERhdGUoKTtcclxuICAgICAgICBsZXQgaGggPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXRIb3VycygpIDogbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICAgIGxldCBtZiA9IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpPDEwID8gJzAnK25ldyBEYXRlKCkuZ2V0TWludXRlcygpIDogbmV3IERhdGUoKS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgbGV0IHNzID0gbmV3IERhdGUoKS5nZXRTZWNvbmRzKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXRTZWNvbmRzKCkgOiBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKTtcclxuICAgICAgICBfdGhpcy5nZXR0aW1lID0geXkrJy0nK21tKyctJytkZCsnICcraGgrJzonK21mKyc6JytzcztcclxuICAgIH0sXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICB0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoKHZhbGlkKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLmhvc3RTTiA9IHRoaXMuZm9ybS5ob3N0U047XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLmtuciA9IHRoaXMuZm9ybS5rbnI7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLnZpbiA9IHRoaXMuZm9ybS52aW47XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLm9ubGluZVRpbWUgPSB0aGlzLmZvcm0ub25saW5lVGltZTtcclxuICAgICAgICAgIHRoaXMuc2F2ZWZvcm0ubTEwMEJpbGwudmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMuZm9ybS52ZWhpY2xlTW9kZWxDb2RlO1xyXG4gICAgICAgICAgdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gICAgICAgICAgdGhpcy5zYXZlZm9ybS5tMTAwQmlsbC5kZXNjcmlwdGlvbiA9IFwi5pegXCI7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLnJlY2VpdmVUaW1lID0gdGhpcy5nZXR0aW1lO1xyXG4gICAgICAgICAgLy/liKTmlq3mnIDlkI7kuIDmrKHlj7PkvqfmlbDmja5yaWdodGRldGFpbHPmmK/lkKblnKjlj7Pkvqflhajpg6jmlbDmja5yaWdodEFsbGRldGFpbHPkuK1cclxuICAgICAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgdmFyIHRsaXN0ID0gdGhpcy5yaWdodEFsbGRldGFpbHMuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlICYmIHUucGFydENvZGUgPT09IGVsZW1lbnQucGFydENvZGUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHUucGFydE5hbWUgPT09IGVsZW1lbnQucGFydE5hbWUgJiYgdS5wYXJ0TnVtID09PSBlbGVtZW50LnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZih0bGlzdC5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvL3RoaXMuc2F2ZWZvcm0uZXJwQXNzZW1ibHlMaXN0LmRldGFpbHMgPSB7fTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlvZPliY3lt6bkvqfmlbDmja5cIik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5sZWZ0ZGV0YWlscyk7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi5b2T5YmN5Y+z5L6n5pi+56S65pWw5o2uXCIpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmZvcm0ucmlnaHRkZXRhaWxzKTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlvZPliY3lj7Pkvqflhajpg6jmlbDmja5cIik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucmlnaHRBbGxkZXRhaWxzKTtcclxuXHJcbiAgICAgICAgICAvKirlt6blj7PlhbPogZTmi7zmjqXmnIDnu4hlcnBBc3NlbWJseUxpc3TmoLzlvI8gKi9cclxuICAgICAgICAgIHRoaXMuZm9ybS5sZWZ0ZGV0YWlscy5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBsaXN0ID0gdGhpcy5yaWdodEFsbGRldGFpbHMuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICBvYmouZXJwQXNzZW1ibHlDb2RlID0gZWxlbWVudC5lcnBBc3NlbWJseUNvZGU7XHJcbiAgICAgICAgICAgIG9iai5lcnBBc3NlbWJseU5hbWUgPSBlbGVtZW50LmVycEFzc2VtYmx5TmFtZTtcclxuICAgICAgICAgICAgb2JqLnZlaGljbGVNb2RlbCA9IGVsZW1lbnQudmVoaWNsZU1vZGVsO1xyXG4gICAgICAgICAgICBvYmouZGV0YWlscyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdGVtcGxpc3QuZm9yRWFjaChkZXRhaWwgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKGRldGFpbC5wYXJ0Q29kZSAhPT0gXCJcIiAmJiBkZXRhaWwucGFydENvZGUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvYmouZGV0YWlscy5wdXNoKGRldGFpbCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zYXZlZm9ybS5lcnBBc3NlbWJseUxpc3QucHVzaChvYmopO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnNhdmVmb3JtKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L+d5a2Y5Y+C5pWwOlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlZm9ybSkpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0VkaXQpIHtcclxuICAgICAgICAgICAgLy/kv67mlLlcclxuICAgICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgICAucHV0cyhcIi9hcGkvbmV3aml0L25ldy1tMTAwL1wiICsgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZCx0aGlzLnNhdmVmb3JtKVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pu05paw5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZWZvcm0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAga25yOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICB2aW46dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhvc3RTTjp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgYmlsbFN0YXR1czoyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJpbGxNMTAwUGFydHM6W10sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vaW5zZXJ05re75YqgXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMuc2F2ZWZvcm0pKTtcclxuICAgICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMFwiLCB0aGlzLnNhdmVmb3JtKVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5paw5aKe5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlZm9ybSA9IHtcclxuICAgICAgICAgICAgICAgICAgbTEwMEJpbGw6XHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBrbnI6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlaGljbGVNb2RlbENvZGU6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaG9zdFNOOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICBvbmxpbmVUaW1lOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICAgICAgICAgICAgYmlsbE0xMDBQYXJ0czpbXSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlMaXN0OltdLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDmlrDlop4gKi9cclxuICAgIGhhbmRsZUNyZWF0ZSgpIHtcclxuICAgICAgdGhpcy5nZXRLTlJMaXN0KCk7XHJcbiAgICAgIGlmICh0aGlzLiRyZWZzW1wiZm9ybVwiXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kcmVmc1tcImZvcm1cIl0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5paw5aKeXCI7XHJcbiAgICAgIHRoaXMuaXNFZGl0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHt9O1xyXG4gICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscyA9IFtdO1xyXG4gICAgICB0aGlzLnNhdmVmb3JtID0ge1xyXG4gICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGtucjp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICBob3N0U046dW5kZWZpbmVkLFxyXG4gICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICBiaWxsTTEwMFBhcnRzOltdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJwQXNzZW1ibHlMaXN0OltdLFxyXG4gICAgICB9O1xyXG4gICAgICAvL3RoaXMuZGV0YWlscyA9IFtdO1xyXG4gICAgICB0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvKiog5L+u5pS5ICovXHJcbiAgICBoYW5kbGVVcGRhdGUocm93KSB7XHJcbiAgICAgIHRoaXMuZ2V0S05STGlzdCgpO1xyXG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5L+u5pS5XCI7XHJcbiAgICAgIHRoaXMuaXNFZGl0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy5zYXZlZm9ybSA9IHtcclxuICAgICAgICBtMTAwQmlsbDpcclxuICAgICAgICB7XHJcbiAgICAgICAgICBrbnI6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgdmVoaWNsZU1vZGVsQ29kZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2aW46dW5kZWZpbmVkLFxyXG4gICAgICAgICAgaG9zdFNOOnVuZGVmaW5lZCxcclxuICAgICAgICAgIG9ubGluZVRpbWU6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgYmlsbFN0YXR1czoyLFxyXG4gICAgICAgICAgYmlsbE0xMDBQYXJ0czpbXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycEFzc2VtYmx5TGlzdDpbXSxcclxuICAgICAgfTtcclxuICAgICAgLy90aGlzLmRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGggIT0gMSkge1xyXG4gICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi57yW6L6R5b+F6aG76YCJ5oup5Y2V6KGMXCIsXHJcbiAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hEYXRhKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQpO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDliKDpmaQgKi9cclxuICAgIGhhbmRsZURlbGV0ZShyb3cpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG4gICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy4kYWxlcnQoXCLmmoLml7bkuI3mlK/mjIHmibnph4/liKDpmaRcIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcbiAgICAgICAgLy8gICBjYWxsYmFjazogKGFjdGlvbikgPT4ge1xyXG4gICAgICAgIC8vICAgICAvL1xyXG4gICAgICAgIC8vICAgfSxcclxuICAgICAgICAvLyB9KTsgIFxyXG4gICAgICAgIHRoaXMuJGNvbmZpcm0oXCLmmK/lkKbliKDpmaTlupXnm5jlj7dcIiArIHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0udmluICsgXCLnmoTmlbDmja4/XCIsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgLmRlbGV0ZXMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9cIisgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZClcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3QuaW5kZXhPZih0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdKTtcclxuICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuWIoOmZpOaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiaW5mb1wiLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIuW3suWPlua2iOWIoOmZpFwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgZmV0Y2hEYXRhKGlkKSB7XHJcbiAgICAgIC8v5b6q546v5Yqo5oCBXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9cIiArIGlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtLm0xMDBCaWxsO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gcmVzcG9uc2UuaXRlbS5lcnBBc3NlbWJseUxpc3Q7XHJcbiAgICAgICAgICByZXNwb25zZS5pdGVtLmVycEFzc2VtYmx5TGlzdC5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5kZXRhaWxzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgaXRlbS5lcnBBc3NlbWJseUNvZGUgPSBlbGVtZW50LmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIGlmKCBpID09PSAwIClcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnJpZ2h0QWxsZGV0YWlscyk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog5a+85Ye65Yqf6IO9ICovXHJcbiAgICBoYW5kbGVEb3dubG9hZCgpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubGlzdEV4cG9ydFF1ZXJ5LmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubGlzdFF1ZXJ5LkVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgdGhpcy5saXN0RXhwb3J0UXVlcnkuZXJwQXNzZW1ibHlOYW1lID0gdGhpcy5saXN0UXVlcnkuRXJwQXNzZW1ibHlOYW1lO1xyXG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0aGlzLmxpc3RFeHBvcnRRdWVyeSkpO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5wb3N0cyhcIi9hcGkvbmV3aml0L25ldy1tMTAwL2V4cG9ydFwiLCB0aGlzLmxpc3RFeHBvcnRRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuICAgICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAgIC5Cb2xiR2V0cyhcIi9hcGkvbmV3aml0L2V4Y2x1ZGUtcGFydC1jZmcvZG93bmxvYWQvXCIgKyBmaWxlbmFtZSlcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGVuYW1lLmluZGV4T2YoXCJfXCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZG93bk5hbWUgPVxyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoZmlsZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZG93bk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuJHJlZnNbcmVmTmFtZV0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lVmFsdWUgPSBbXTtcclxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpO1xyXG4gICAgICB0aGlzLmdldFByb2R1Y3RMaW5lKCk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqL1xyXG4gICAgaGFuZGxlUXVlcnkoKSB7XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9IDE7XHJcbiAgICAgIC8vdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0VmFsdWUocGFyYW1zKSB7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmVyc2lvblZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc2VsZWN0T3B0aW9uc0NoYW5nZShpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIGltcG9ydEV4Y2VsRGF0YSgpIHtcclxuICAgICAgLy/lhbPpl63lr7zlhaXnqpfkvZPml7bosIPnlKhcclxuICAgICAgdGhpcy5zaG93RXhjZWxJbXBvcnQgPSBmYWxzZTtcclxuICAgICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKirlt6blop7liqAgKi9cclxuICAgIGhhbmRsZUFkZExlZnREZXRhaWxzKCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBpZiAodGhpcy5mb3JtLmxlZnRkZXRhaWxzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmZvcm0ubGVmdGRldGFpbHMgPSBbXTtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKDY3OSk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICBvYmouZXJwQXNzZW1ibHlDb2RlID0gXCJcIjtcclxuICAgICAgb2JqLmVycEFzc2VtYmx5TmFtZSA9IFwiXCI7XHJcbiAgICAgIG9iai52ZWhpY2xlTW9kZWwgPSB0aGlzLmZvcm0udmVoaWNsZU1vZGVsQ29kZTtcclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5mb3JtLmxlZnRkZXRhaWxzKTtcclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2ODgpO1xyXG4gICAgfSxcclxuICAgIC8qKuWPs+WinuWKoCAqL1xyXG4gICAgaGFuZGxlQWRkUmlnaHREZXRhaWxzKCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBsZXQgb2JqID0ge307XHJcbiAgICAgIC8v5Yik5pat5piv5ZCm6YCJ5oup5LqG5bem5L6n55qE5pWw5o2uXHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24pO1xyXG4gICAgICBpZih0aGlzLm11bHRpcExlTGVmdFNlbGVjdGlvbi5sZW5ndGggIT09IDEpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgbWVzc2FnZTogXCLlv4XpobvpgInmi6nljZXooYzmgLvmiJBcIixcclxuICAgICAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIHtcclxuICAgICAgICAvLyBpZiAodGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgLy8gICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW107XHJcbiAgICAgICAgLy8gICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubXVsdGlwTGVMZWZ0U2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgICAvLyAgIC8vY29uc29sZS5sb2coNjc5KTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH1cclxuICAgICAgb2JqLmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubXVsdGlwTGVMZWZ0U2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgb2JqLnBhcnRDb2RlID0gXCJcIjtcclxuICAgICAgb2JqLmRlc2NyaXB0aW9uID0gXCJcIjtcclxuICAgICAgb2JqLnBhcnROdW09IDE7XHJcblxyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5yaWdodGRldGFpbHMpO1xyXG4gICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2ODgpO1xyXG4gICAgfSxcclxuICAgIC8qKuW3puS+p+WIoOmZpCAqL1xyXG4gICAgaGFuZGxlTGVmdERlbGV0ZURldGFpbHMoaW5kZXgscm93KXtcclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMucmlnaHRBbGxkZXRhaWxzID0gdGhpcy4gcmlnaHRBbGxkZXRhaWxzLmZpbHRlcih1ID0+IHUuZXJwQXNzZW1ibHlDb2RlICE9PSByb3cuZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2OTMpO1xyXG4gICAgfSxcclxuICAgIC8qKuWPs+S+p+WIoOmZpCAqL1xyXG4gICAgaGFuZGxlUmlnaHREZWxldGVEZXRhaWxzKGluZGV4LHJvdyl7XHJcbiAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMuZm9yRWFjaCgoZWxlbWVudCxpKSA9PiB7XHJcbiAgICAgICAgaWYoZWxlbWVudCA9PT0gcm93KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlj7PkvqfliKDpmaRcIik7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucmlnaHRBbGxkZXRhaWxzKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyAuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgIT09IHJvdy5lcnBBc3NlbWJseUNvZGUgJiYgdS5wYXJ0Q29kZSAhPT0gcm93LnBhcnRDb2RlIFxyXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHUucGFydE5hbWUgIT09IHJvdy5wYXJ0TmFtZSAmJiB1LnBhcnROdW0gIT09IHJvdy5wYXJ0TnVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgIC8vY29uc29sZS5sb2coNjkzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuICAgICAgICByZXR1cm4geyAwOiBcIuacqueUn+aViFwiLCAyOiBcIuW3sueUn+aViFwiLCAzOiBcIuW3suWPkeW4g1wiIH1bcm93W2NvbHVtbi5wcm9wZXJ0eV1dO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT0gXCJvbmxpbmVUaW1lXCIgfHwgY29sdW1uLnByb3BlcnR5ID09IFwicmVjZWl2ZVRpbWVcIikge1xyXG4gICAgICAgIHZhciBkYXRlID0gcm93W2NvbHVtbi5wcm9wZXJ0eV07XHJcbiAgICAgICAgaWYgKGRhdGUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tOnNzXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgcm9sZUZpbHRlcih0eXBlKSB7XHJcbiAgICAgIHJldHVybiBwcm9qZWN0VHlwZUtleVZhbHVlW3R5cGVdO1xyXG4gICAgfSxcclxuICAgIGdldExpc3QoZGF0YSkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5Ta2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiBkYXRhLmxpbWl0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIDE1O1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVWYWx1ZSE9PSB1bmRlZmluZWQpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lQmVnaW4gPSB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlIT09IHVuZGVmaW5lZClcclxuICAgICAge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lQmVnaW4gPSB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlWzBdO1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lRW5kID0gdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvbmV3LW0xMDAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0S05STGlzdCgpIHtcclxuICAgICAgdmFyIGxxID0ge307XHJcbiAgICAgIHZhciB0bGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvYmlsbC1yMTAwL2xpc3RcIiwgbHEpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLktOUmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi6I635Y+WUjEwMOeahEtOUuS/oeaBr1wiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuS05SbGlzdCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBnZXRWTW9kZWwoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmZvcm0udmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMuS05SbGlzdC5maWx0ZXIodSA9PiB1LmtuciA9PT0gdGhpcy5mb3JtLmtucilbMF0udmVoaWNsZU1vZGVsQ29kZTtcclxuICAgICAgdGhpcy5rbnJRdWVyeS5rbnIgPSB0aGlzLmZvcm0ua25yO1xyXG4gICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW107XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9nZXQtZXJwLWFzc2VtYmx5LWxpc3RcIiwgdGhpcy5rbnJRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gdHJ1ZSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5LTlJFQ2xpc3QgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi6I635Y+WS05S55qE5oC75oiQ5L+h5oGvXCIpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMuS05SRUNsaXN0KTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuICAgICAgICAgICAgcmVzcG9uc2UuaXRlbS5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgICBlbGVtZW50LmRldGFpbHMuZm9yRWFjaChkZXRhaWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsLmVycEFzc2VtYmx5Q29kZSA9IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMucHVzaChkZXRhaWwpO1xyXG4gICAgICAgICAgICAgICAgaWYoIGkgPT09IDAgKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2goZGV0YWlsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5o6l5Y+j6L+U5Zue57uT5p6c5Li66ZSZ6K+vXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgdk1jaGFuZ2UoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICB2YWx1ZXNlbGVjdENoYW5nZSgpe3RoaXMuJGZvcmNlVXBkYXRlKCk7fSxcclxuICAgIGhhbmRsZUltcG9ydFNBUCgpe30sXHJcblxyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZUxlZnRTZWxlY3Rpb25DaGFuZ2UodmFsKVxyXG4gICAge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puaUueWPmFwiKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codmFsKTtcclxuICAgICAgLy8gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24gPSBbXTtcclxuICAgICAgLy8gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24ucHVzaCh2YWwpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm11bHRpcExlTGVmdFNlbGVjdGlvbik7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJyaWdodFwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKuS4u+ihqOeCueWHuyovXHJcbiAgICBoYW5kbGVSb3dDbGljayhyb3csIGNvbHVtbiwgZXZlbnQpIHtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgIH0sXHJcbiAgICAvKirlt6bngrnlh7sqL1xyXG4gICAgaGFuZGxlTGVmdFJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwi5bem54K55Ye7XCIpO1xyXG4gICAgICB0aGlzLiRyZWZzLkxlZnREZXRpYWxUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLkxlZnREZXRpYWxUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24gPSBbXTtcclxuICAgICAgdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24ucHVzaChyb3cpO1xyXG4gICAgICBpZih0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID09PSB1bmRlZmluZWQpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW11cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLmxlbmd0aCA+IDApXHJcbiAgICAgIHtcclxuICAgICAgICB2YXIgdGVtcGxpc3QgPSB0aGlzLnJpZ2h0QWxsZGV0YWlscy5maWx0ZXIodSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5mb3JtLnJpZ2h0ZGV0YWlsc1swXS5lcnBBc3NlbWJseUNvZGUpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHZhciB0ZW1wID0gdGVtcGxpc3QuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlICYmIHUucGFydENvZGUgPT09IGVsZW1lbnQucGFydENvZGUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB1LnBhcnROYW1lID09PSBlbGVtZW50LnBhcnROYW1lICYmIHUucGFydE51bSA9PT0gZWxlbWVudC5wYXJ0TnVtKTtcclxuICAgICAgICAgIGlmKHRlbXAubGVuZ3RoID49IDEpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCLliKTlrprljIXlkKtcIik7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGVtcGxpc3QpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi5Yik5a6a5LiN5YyF5ZCrXCIpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAge1xyXG4gICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vLmxvZyhcIuWPs+S+p+WFqOaVsOaNrlwiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnJpZ2h0QWxsZGV0YWlscyk7XHJcbiAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMgPSB0aGlzLnJpZ2h0QWxsZGV0YWlscy5maWx0ZXIodSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb25bMF0uZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyhcIuWPs+S+p+aVsOaNrlwiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmZvcm0ucmlnaHRkZXRhaWxzKTtcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPluaJgOacieS6p+e6v1xyXG4gICAgZ2V0UHJvZHVjdExpbmUoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZCA9IHRoaXMudXNlckluZm8udXNlcklkO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgLmdldHMoXHJcbiAgICAgICAgICAgIFwiL2FwaS9uZXdqaXQvcHJvZHVjdC1saW5lL2xpc3RcIix0aGlzLmxpc3RQTFF1ZXJ5XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMuUExMaXN0ID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgICAgdGhpcy5QTENoaWxkTGlzdCA9IHRoaXMuUExMaXN0LmZpbHRlcih1ID0+IHUucHJvZHVjdFR5cGUgPT09IHBhcnNlSW50KHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlKSkuc29ydCgoYSxiKT0+e3JldHVybiBhLnByb2R1Y3RMaW5lQ29kZS1iLnByb2R1Y3RMaW5lQ29kZX0pO1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IHRoaXMuUExDaGlsZExpc3RbMF0ucHJvZHVjdExpbmVDb2RlO1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGhpcy5QTExpc3QpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvL+S6p+e6v+exu+Wei+WPmOabtFxyXG4gICAgcHR5cGVzZWxlY3RDaGFuZ2UoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IFwiXCI7XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5saXN0UXVlcnkucHJvZHVjdFR5cGUpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuUExDaGlsZExpc3QpXHJcbiAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIodSA9PiB1LnByb2R1Y3RUeXBlID09PSBwYXJzZUludCh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSkpLnNvcnQoKGEsYik9PntyZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUtYi5wcm9kdWN0TGluZUNvZGV9KTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMTGlzdClcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSlcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMQ2hpbGRMaXN0KVxyXG4gICAgfSxcclxuICAgIC8v6I635Y+W6L2m5Z6LXHJcbiAgICBnZXR2ZWhpY2xlTW9kZWwoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgLmdldHMoXHJcbiAgICAgICAgICAgIFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIix0aGlzLnZlaGljbGVNb2RlbFF1ZXJ5XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmVoaWNsZU1vZGVsTGlzdCA9IHJlc3BvbnNlLml0ZW07XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBsZWZ0Y2xpY2soKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBsZXQgb2JqID0ge307XHJcbiAgICAgIG9iai5lcnBBc3NlbWJseUNvZGUgPSB0aGlzLmZvcm0uZXJwQXNzZW1ibHlDb2RlO1xyXG4gICAgICBvYmouZXJwQXNzZW1ibHlOYW1lID0gdGhpcy5mb3JtLmVycEFzc2VtYmx5TmFtZTtcclxuICAgICAgb2JqLnZlaGljbGVNb2RlbCA9IHRoaXMuZm9ybS52ZWhpY2xlTW9kZWxDb2RlO1xyXG4gICAgICBcclxuICAgICAgaWYgKHRoaXMuZm9ybS5sZWZ0ZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgIH0sXHJcbiAgICByaWdodGNsaWNrKCl7fSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuXHJcbi8vIC8q6KGo5qC85YWo6YCJ5qGG5Y676Zmk56m65qGGKi9cclxuLy8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGwgLmVsLWNoZWNrYm94X19pbm5lciB7XHJcbi8vICAgZGlzcGxheTogbm9uZTtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuLy8gLyrooajmoLzlhajpgInmoYbmlLnkuLrvvJrpgInmi6kqL1xyXG4vLyAuZWwtdGFibGUgPj4+IC5EaXNhYmxlZFNlbGVjdGlvbiAuY2VsbDpiZWZvcmUge1xyXG4vLyAgIGNvbnRlbnQ6IFwi5piv5ZCmS2V55Lu2XCI7XHJcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgIGxlZnQ6IDdweDtcclxuLy8gfVxyXG4uZGl2aWRlcjF7XHJcbiAgbWFyZ2luOiAwIDtcclxufVxyXG4uZGl2aWRlcjJ7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHggO1xyXG4gIHdpZHRoOiA5NSU7XHJcbn1cclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU0NWExNTkyJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU0NWExNTkyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ1YTE1OTJcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ceae\n')},d6fd:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/ZTYyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJkNmZkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d6fd\n")},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file +(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-de0cc00c"],{"01d5":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7ecc");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_e45a1592_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT85Zjg1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIwMWQ1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU0NWExNTkyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///01d5\n')},"20c9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2550");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneSet_vue_vue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8wYTBlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiIyMGM5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lU2V0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwNjM2MDZhJnJlbD1zdHlsZXNoZWV0JTJGc2NzcyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///20c9\n')},2550:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yMWIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjI1NTAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///2550\n")},2853:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVENDIxMjcwRTk3MjExRThBODU4QUQ4NUJENjczMDYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVENDIxMjcxRTk3MjExRThBODU4QUQ4NUJENjczMDYyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQ0MjEyNkVFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQ0MjEyNkZFOTcyMTFFOEE4NThBRDg1QkQ2NzMwNjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4sHPE4AAAA5ElEQVR42mLMOnn9MAMDgw0QM0w10wBRDNmnbjBgA//+/WOQERWZfurggQIg9xdMnAlmADHg16/fDOxsbJmmNrY9QC4bTJwFWRHMBbhc9PsXxHIOTs5coEEMp48cLgGZzcRAAvgPhO8/fIQbZGhptRDkIhSXEAoTVhZWhks3bjF8/fIVaAg7g4CAQARQOI2FFJewsbMxiIqKMAgI8jMwAiErGxvDVwaGnySFCTMzMwMnFycDCCKHN0lhgguQFCbYgIyOHgP1XUIoTHAB6rsE3UXEAqq4ZNQQGhpyhAL9R0EEQIABAPmVRJFELfJOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ppcC5wbmc/MzcwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiMjg1My5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tWRU5ESXhNamN3UlRrM01qRXhSVGhCT0RVNFFVUTROVUpFTmpjek1EWXlJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1ZFTkRJeE1qY3hSVGszTWpFeFJUaEJPRFU0UVVRNE5VSkVOamN6TURZeUlqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSVVEwTWpFeU5rVkZPVGN5TVRGRk9FRTROVGhCUkRnMVFrUTJOek13TmpJaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJVUTBNakV5TmtaRk9UY3lNVEZGT0VFNE5UaEJSRGcxUWtRMk56TXdOaklpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0c0hQRTRBQUFBNUVsRVFWUjQybUxNT25uOU1BTURndzBRTTB3MTB3QlJETm1uYmpCZ0EvLysvV09RRVJXWmZ1cmdnUUlnOXhkTW5BbG1BREhnMTYvZkRPeHNiSm1tTnJZOVFDNGJUSndGV1JITUJiaGM5UHNYeEhJT1RzNWNvRUVNcDQ4Y0xnR1p6Y1JBQXZnUGhPOC9mSVFiWkdocHRSRGtJaFNYRUFvVFZoWldoa3MzYmpGOC9mSVZhQWc3ZzRDQVFBUlFPSTJGRkpld3NiTXhpSXFLTUFnSThqTXdBaUVyR3h2RFZ3YUdueVNGQ1RNek13TW5GeWNEQ0NLSE4wbGhnZ3VRRkNiWWdJeU9IZ1AxWFVJb1RIQUI2cnNFM1VYRUFxcTRaTlFRR2hweWhBTDlSMEVFUUlBQkFQbVZSSkZFTGZKT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///2853\n')},3:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vZnMgKGlnbm9yZWQpPzYzYTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEiLCJmaWxlIjoiMy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///3\n")},4:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY3J5cHRvIChpZ25vcmVkKT8zY2I5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4\n")},"4bf8d":function(module,__webpack_exports__,__webpack_require__){"use strict";eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_table_to_excel\", function() { return export_table_to_excel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"export_json_to_excel\", function() { return export_json_to_excel; });\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"ac6a\");\n/* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"2909\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"1146\");\n/* harmony import */ var xlsx__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(xlsx__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n/* eslint-disable */\n\n\n\nfunction generateArray(table) {\n var out = [];\n var rows = table.querySelectorAll('tr');\n var ranges = [];\n\n for (var R = 0; R < rows.length; ++R) {\n var outRow = [];\n var row = rows[R];\n var columns = row.querySelectorAll('td');\n\n for (var C = 0; C < columns.length; ++C) {\n var cell = columns[C];\n var colspan = cell.getAttribute('colspan');\n var rowspan = cell.getAttribute('rowspan');\n var cellValue = cell.innerText;\n if (cellValue !== \"\" && cellValue == +cellValue) cellValue = +cellValue; //Skip ranges\n\n ranges.forEach(function (range) {\n if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {\n for (var i = 0; i <= range.e.c - range.s.c; ++i) {\n outRow.push(null);\n }\n }\n }); //Handle Row Span\n\n if (rowspan || colspan) {\n rowspan = rowspan || 1;\n colspan = colspan || 1;\n ranges.push({\n s: {\n r: R,\n c: outRow.length\n },\n e: {\n r: R + rowspan - 1,\n c: outRow.length + colspan - 1\n }\n });\n }\n\n ; //Handle Value\n\n outRow.push(cellValue !== \"\" ? cellValue : null); //Handle Colspan\n\n if (colspan) for (var k = 0; k < colspan - 1; ++k) {\n outRow.push(null);\n }\n }\n\n out.push(outRow);\n }\n\n return [out, ranges];\n}\n\n;\n\nfunction datenum(v, date1904) {\n if (date1904) v += 1462;\n var epoch = Date.parse(v);\n return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n}\n\nfunction sheet_from_array_of_arrays(data, opts) {\n var ws = {};\n var range = {\n s: {\n c: 10000000,\n r: 10000000\n },\n e: {\n c: 0,\n r: 0\n }\n };\n\n for (var R = 0; R != data.length; ++R) {\n for (var C = 0; C != data[R].length; ++C) {\n if (range.s.r > R) range.s.r = R;\n if (range.s.c > C) range.s.c = C;\n if (range.e.r < R) range.e.r = R;\n if (range.e.c < C) range.e.c = C;\n var cell = {\n v: data[R][C]\n };\n if (cell.v == null) continue;\n var cell_ref = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_cell({\n c: C,\n r: R\n });\n if (typeof cell.v === 'number') cell.t = 'n';else if (typeof cell.v === 'boolean') cell.t = 'b';else if (cell.v instanceof Date) {\n cell.t = 'n';\n cell.z = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.SSF._table[14];\n cell.v = datenum(cell.v);\n } else cell.t = 's';\n ws[cell_ref] = cell;\n }\n }\n\n if (range.s.c < 10000000) ws['!ref'] = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.encode_range(range);\n return ws;\n}\n\nfunction Workbook() {\n if (!(this instanceof Workbook)) return new Workbook();\n this.SheetNames = [];\n this.Sheets = {};\n}\n\nfunction s2ab(s) {\n var buf = new ArrayBuffer(s.length);\n var view = new Uint8Array(buf);\n\n for (var i = 0; i != s.length; ++i) {\n view[i] = s.charCodeAt(i) & 0xFF;\n }\n\n return buf;\n}\n\nfunction export_table_to_excel(id) {\n var theTable = document.getElementById(id);\n var oo = generateArray(theTable);\n var ranges = oo[1];\n /* original data */\n\n var data = oo[0];\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n /* add ranges to worksheet */\n // ws['!cols'] = ['apple', 'banan'];\n\n ws['!merges'] = ranges;\n /* add worksheet to workbook */\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: 'xlsx',\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"test.xlsx\");\n}\nfunction export_json_to_excel() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$multiHeader = _ref.multiHeader,\n multiHeader = _ref$multiHeader === void 0 ? [] : _ref$multiHeader,\n header = _ref.header,\n data = _ref.data,\n filename = _ref.filename,\n _ref$merges = _ref.merges,\n merges = _ref$merges === void 0 ? [] : _ref$merges,\n _ref$autoWidth = _ref.autoWidth,\n autoWidth = _ref$autoWidth === void 0 ? true : _ref$autoWidth,\n _ref$bookType = _ref.bookType,\n bookType = _ref$bookType === void 0 ? 'xlsx' : _ref$bookType;\n\n /* original data */\n filename = filename || 'excel-list';\n data = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_2__[/* default */ \"a\"])(data);\n data.unshift(header);\n\n for (var i = multiHeader.length - 1; i > -1; i--) {\n data.unshift(multiHeader[i]);\n }\n\n var ws_name = \"SheetJS\";\n var wb = new Workbook(),\n ws = sheet_from_array_of_arrays(data);\n\n if (merges.length > 0) {\n if (!ws['!merges']) ws['!merges'] = [];\n merges.forEach(function (item) {\n ws['!merges'].push(xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.utils.decode_range(item));\n });\n }\n\n if (autoWidth) {\n /*设置worksheet每列的最大宽度*/\n var colWidth = data.map(function (row) {\n return row.map(function (val) {\n /*先判断是否为null/undefined*/\n if (val == null) {\n return {\n 'wch': 10\n };\n }\n /*再判断是否为中文*/\n else if (val.toString().charCodeAt(0) > 255) {\n return {\n 'wch': val.toString().length * 2\n };\n } else {\n return {\n 'wch': val.toString().length\n };\n }\n });\n });\n /*以第一行为初始值*/\n\n var result = colWidth[0];\n\n for (var _i = 1; _i < colWidth.length; _i++) {\n for (var j = 0; j < colWidth[_i].length; j++) {\n if (result[j]['wch'] < colWidth[_i][j]['wch']) {\n result[j]['wch'] = colWidth[_i][j]['wch'];\n }\n }\n }\n\n ws['!cols'] = result;\n }\n /* add worksheet to workbook */\n\n\n wb.SheetNames.push(ws_name);\n wb.Sheets[ws_name] = ws;\n var wbout = xlsx__WEBPACK_IMPORTED_MODULE_5___default.a.write(wb, {\n bookType: bookType,\n bookSST: false,\n type: 'binary'\n });\n Object(file_saver__WEBPACK_IMPORTED_MODULE_4__[\"saveAs\"])(new Blob([s2ab(wbout)], {\n type: \"application/octet-stream\"\n }), \"\".concat(filename, \".\").concat(bookType));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmVuZG9yL0V4cG9ydDJFeGNlbC5qcz80YmY4Il0sIm5hbWVzIjpbImdlbmVyYXRlQXJyYXkiLCJ0YWJsZSIsIm91dCIsInJvd3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwicmFuZ2VzIiwiUiIsImxlbmd0aCIsIm91dFJvdyIsInJvdyIsImNvbHVtbnMiLCJDIiwiY2VsbCIsImNvbHNwYW4iLCJnZXRBdHRyaWJ1dGUiLCJyb3dzcGFuIiwiY2VsbFZhbHVlIiwiaW5uZXJUZXh0IiwiZm9yRWFjaCIsInJhbmdlIiwicyIsInIiLCJlIiwiYyIsImkiLCJwdXNoIiwiayIsImRhdGVudW0iLCJ2IiwiZGF0ZTE5MDQiLCJlcG9jaCIsIkRhdGUiLCJwYXJzZSIsIlVUQyIsInNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzIiwiZGF0YSIsIm9wdHMiLCJ3cyIsImNlbGxfcmVmIiwiWExTWCIsInV0aWxzIiwiZW5jb2RlX2NlbGwiLCJ0IiwieiIsIlNTRiIsIl90YWJsZSIsImVuY29kZV9yYW5nZSIsIldvcmtib29rIiwiU2hlZXROYW1lcyIsIlNoZWV0cyIsInMyYWIiLCJidWYiLCJBcnJheUJ1ZmZlciIsInZpZXciLCJVaW50OEFycmF5IiwiY2hhckNvZGVBdCIsImV4cG9ydF90YWJsZV90b19leGNlbCIsImlkIiwidGhlVGFibGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwib28iLCJ3c19uYW1lIiwid2IiLCJ3Ym91dCIsIndyaXRlIiwiYm9va1R5cGUiLCJib29rU1NUIiwidHlwZSIsInNhdmVBcyIsIkJsb2IiLCJleHBvcnRfanNvbl90b19leGNlbCIsIm11bHRpSGVhZGVyIiwiaGVhZGVyIiwiZmlsZW5hbWUiLCJtZXJnZXMiLCJhdXRvV2lkdGgiLCJ1bnNoaWZ0IiwiaXRlbSIsImRlY29kZV9yYW5nZSIsImNvbFdpZHRoIiwibWFwIiwidmFsIiwidG9TdHJpbmciLCJyZXN1bHQiLCJqIl0sIm1hcHBpbmdzIjoiOzs7Ozs7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QjtBQUVBLE1BQUkyQixLQUFLLEdBQUd6QiwyQ0FBSSxDQUFDMEIsS0FBTCxDQUFXRixFQUFYLEVBQWU7QUFDekJHLFlBQVEsRUFBRUEsUUFEZTtBQUV6QkMsV0FBTyxFQUFFLEtBRmdCO0FBR3pCQyxRQUFJLEVBQUU7QUFIbUIsR0FBZixDQUFaO0FBS0FDLDJEQUFNLENBQUMsSUFBSUMsSUFBSixDQUFTLENBQUNwQixJQUFJLENBQUNjLEtBQUQsQ0FBTCxDQUFULEVBQXdCO0FBQzdCSSxRQUFJLEVBQUU7QUFEdUIsR0FBeEIsQ0FBRCxZQUVDTSxRQUZELGNBRWFSLFFBRmIsRUFBTjtBQUdEIiwiZmlsZSI6IjRiZjhkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgKi9cclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcidcclxuaW1wb3J0IFhMU1ggZnJvbSAneGxzeCdcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlQXJyYXkodGFibGUpIHtcclxuICB2YXIgb3V0ID0gW107XHJcbiAgdmFyIHJvd3MgPSB0YWJsZS5xdWVyeVNlbGVjdG9yQWxsKCd0cicpO1xyXG4gIHZhciByYW5nZXMgPSBbXTtcclxuICBmb3IgKHZhciBSID0gMDsgUiA8IHJvd3MubGVuZ3RoOyArK1IpIHtcclxuICAgIHZhciBvdXRSb3cgPSBbXTtcclxuICAgIHZhciByb3cgPSByb3dzW1JdO1xyXG4gICAgdmFyIGNvbHVtbnMgPSByb3cucXVlcnlTZWxlY3RvckFsbCgndGQnKTtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDIDwgY29sdW1ucy5sZW5ndGg7ICsrQykge1xyXG4gICAgICB2YXIgY2VsbCA9IGNvbHVtbnNbQ107XHJcbiAgICAgIHZhciBjb2xzcGFuID0gY2VsbC5nZXRBdHRyaWJ1dGUoJ2NvbHNwYW4nKTtcclxuICAgICAgdmFyIHJvd3NwYW4gPSBjZWxsLmdldEF0dHJpYnV0ZSgncm93c3BhbicpO1xyXG4gICAgICB2YXIgY2VsbFZhbHVlID0gY2VsbC5pbm5lclRleHQ7XHJcbiAgICAgIGlmIChjZWxsVmFsdWUgIT09IFwiXCIgJiYgY2VsbFZhbHVlID09ICtjZWxsVmFsdWUpIGNlbGxWYWx1ZSA9ICtjZWxsVmFsdWU7XHJcblxyXG4gICAgICAvL1NraXAgcmFuZ2VzXHJcbiAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uIChyYW5nZSkge1xyXG4gICAgICAgIGlmIChSID49IHJhbmdlLnMuciAmJiBSIDw9IHJhbmdlLmUuciAmJiBvdXRSb3cubGVuZ3RoID49IHJhbmdlLnMuYyAmJiBvdXRSb3cubGVuZ3RoIDw9IHJhbmdlLmUuYykge1xyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gcmFuZ2UuZS5jIC0gcmFuZ2Uucy5jOyArK2kpIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvL0hhbmRsZSBSb3cgU3BhblxyXG4gICAgICBpZiAocm93c3BhbiB8fCBjb2xzcGFuKSB7XHJcbiAgICAgICAgcm93c3BhbiA9IHJvd3NwYW4gfHwgMTtcclxuICAgICAgICBjb2xzcGFuID0gY29sc3BhbiB8fCAxO1xyXG4gICAgICAgIHJhbmdlcy5wdXNoKHtcclxuICAgICAgICAgIHM6IHtcclxuICAgICAgICAgICAgcjogUixcclxuICAgICAgICAgICAgYzogb3V0Um93Lmxlbmd0aFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGU6IHtcclxuICAgICAgICAgICAgcjogUiArIHJvd3NwYW4gLSAxLFxyXG4gICAgICAgICAgICBjOiBvdXRSb3cubGVuZ3RoICsgY29sc3BhbiAtIDFcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vSGFuZGxlIFZhbHVlXHJcbiAgICAgIG91dFJvdy5wdXNoKGNlbGxWYWx1ZSAhPT0gXCJcIiA/IGNlbGxWYWx1ZSA6IG51bGwpO1xyXG5cclxuICAgICAgLy9IYW5kbGUgQ29sc3BhblxyXG4gICAgICBpZiAoY29sc3BhbilcclxuICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbHNwYW4gLSAxOyArK2spIG91dFJvdy5wdXNoKG51bGwpO1xyXG4gICAgfVxyXG4gICAgb3V0LnB1c2gob3V0Um93KTtcclxuICB9XHJcbiAgcmV0dXJuIFtvdXQsIHJhbmdlc107XHJcbn07XHJcblxyXG5mdW5jdGlvbiBkYXRlbnVtKHYsIGRhdGUxOTA0KSB7XHJcbiAgaWYgKGRhdGUxOTA0KSB2ICs9IDE0NjI7XHJcbiAgdmFyIGVwb2NoID0gRGF0ZS5wYXJzZSh2KTtcclxuICByZXR1cm4gKGVwb2NoIC0gbmV3IERhdGUoRGF0ZS5VVEMoMTg5OSwgMTEsIDMwKSkpIC8gKDI0ICogNjAgKiA2MCAqIDEwMDApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhLCBvcHRzKSB7XHJcbiAgdmFyIHdzID0ge307XHJcbiAgdmFyIHJhbmdlID0ge1xyXG4gICAgczoge1xyXG4gICAgICBjOiAxMDAwMDAwMCxcclxuICAgICAgcjogMTAwMDAwMDBcclxuICAgIH0sXHJcbiAgICBlOiB7XHJcbiAgICAgIGM6IDAsXHJcbiAgICAgIHI6IDBcclxuICAgIH1cclxuICB9O1xyXG4gIGZvciAodmFyIFIgPSAwOyBSICE9IGRhdGEubGVuZ3RoOyArK1IpIHtcclxuICAgIGZvciAodmFyIEMgPSAwOyBDICE9IGRhdGFbUl0ubGVuZ3RoOyArK0MpIHtcclxuICAgICAgaWYgKHJhbmdlLnMuciA+IFIpIHJhbmdlLnMuciA9IFI7XHJcbiAgICAgIGlmIChyYW5nZS5zLmMgPiBDKSByYW5nZS5zLmMgPSBDO1xyXG4gICAgICBpZiAocmFuZ2UuZS5yIDwgUikgcmFuZ2UuZS5yID0gUjtcclxuICAgICAgaWYgKHJhbmdlLmUuYyA8IEMpIHJhbmdlLmUuYyA9IEM7XHJcbiAgICAgIHZhciBjZWxsID0ge1xyXG4gICAgICAgIHY6IGRhdGFbUl1bQ11cclxuICAgICAgfTtcclxuICAgICAgaWYgKGNlbGwudiA9PSBudWxsKSBjb250aW51ZTtcclxuICAgICAgdmFyIGNlbGxfcmVmID0gWExTWC51dGlscy5lbmNvZGVfY2VsbCh7XHJcbiAgICAgICAgYzogQyxcclxuICAgICAgICByOiBSXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdudW1iZXInKSBjZWxsLnQgPSAnbic7XHJcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiBjZWxsLnYgPT09ICdib29sZWFuJykgY2VsbC50ID0gJ2InO1xyXG4gICAgICBlbHNlIGlmIChjZWxsLnYgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgY2VsbC50ID0gJ24nO1xyXG4gICAgICAgIGNlbGwueiA9IFhMU1guU1NGLl90YWJsZVsxNF07XHJcbiAgICAgICAgY2VsbC52ID0gZGF0ZW51bShjZWxsLnYpO1xyXG4gICAgICB9IGVsc2UgY2VsbC50ID0gJ3MnO1xyXG5cclxuICAgICAgd3NbY2VsbF9yZWZdID0gY2VsbDtcclxuICAgIH1cclxuICB9XHJcbiAgaWYgKHJhbmdlLnMuYyA8IDEwMDAwMDAwKSB3c1snIXJlZiddID0gWExTWC51dGlscy5lbmNvZGVfcmFuZ2UocmFuZ2UpO1xyXG4gIHJldHVybiB3cztcclxufVxyXG5cclxuZnVuY3Rpb24gV29ya2Jvb2soKSB7XHJcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFdvcmtib29rKSkgcmV0dXJuIG5ldyBXb3JrYm9vaygpO1xyXG4gIHRoaXMuU2hlZXROYW1lcyA9IFtdO1xyXG4gIHRoaXMuU2hlZXRzID0ge307XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHMyYWIocykge1xyXG4gIHZhciBidWYgPSBuZXcgQXJyYXlCdWZmZXIocy5sZW5ndGgpO1xyXG4gIHZhciB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmKTtcclxuICBmb3IgKHZhciBpID0gMDsgaSAhPSBzLmxlbmd0aDsgKytpKSB2aWV3W2ldID0gcy5jaGFyQ29kZUF0KGkpICYgMHhGRjtcclxuICByZXR1cm4gYnVmO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0X3RhYmxlX3RvX2V4Y2VsKGlkKSB7XHJcbiAgdmFyIHRoZVRhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gIHZhciBvbyA9IGdlbmVyYXRlQXJyYXkodGhlVGFibGUpO1xyXG4gIHZhciByYW5nZXMgPSBvb1sxXTtcclxuXHJcbiAgLyogb3JpZ2luYWwgZGF0YSAqL1xyXG4gIHZhciBkYXRhID0gb29bMF07XHJcbiAgdmFyIHdzX25hbWUgPSBcIlNoZWV0SlNcIjtcclxuXHJcbiAgdmFyIHdiID0gbmV3IFdvcmtib29rKCksXHJcbiAgICB3cyA9IHNoZWV0X2Zyb21fYXJyYXlfb2ZfYXJyYXlzKGRhdGEpO1xyXG5cclxuICAvKiBhZGQgcmFuZ2VzIHRvIHdvcmtzaGVldCAqL1xyXG4gIC8vIHdzWychY29scyddID0gWydhcHBsZScsICdiYW5hbiddO1xyXG4gIHdzWychbWVyZ2VzJ10gPSByYW5nZXM7XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiAneGxzeCcsXHJcbiAgICBib29rU1NUOiBmYWxzZSxcclxuICAgIHR5cGU6ICdiaW5hcnknXHJcbiAgfSk7XHJcblxyXG4gIHNhdmVBcyhuZXcgQmxvYihbczJhYih3Ym91dCldLCB7XHJcbiAgICB0eXBlOiBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiXHJcbiAgfSksIFwidGVzdC54bHN4XCIpXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRfanNvbl90b19leGNlbCh7XHJcbiAgbXVsdGlIZWFkZXIgPSBbXSxcclxuICBoZWFkZXIsXHJcbiAgZGF0YSxcclxuICBmaWxlbmFtZSxcclxuICBtZXJnZXMgPSBbXSxcclxuICBhdXRvV2lkdGggPSB0cnVlLFxyXG4gIGJvb2tUeXBlID0gJ3hsc3gnXHJcbn0gPSB7fSkge1xyXG4gIC8qIG9yaWdpbmFsIGRhdGEgKi9cclxuICBmaWxlbmFtZSA9IGZpbGVuYW1lIHx8ICdleGNlbC1saXN0J1xyXG4gIGRhdGEgPSBbLi4uZGF0YV1cclxuICBkYXRhLnVuc2hpZnQoaGVhZGVyKTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IG11bHRpSGVhZGVyLmxlbmd0aCAtIDE7IGkgPiAtMTsgaS0tKSB7XHJcbiAgICBkYXRhLnVuc2hpZnQobXVsdGlIZWFkZXJbaV0pXHJcbiAgfVxyXG5cclxuICB2YXIgd3NfbmFtZSA9IFwiU2hlZXRKU1wiO1xyXG4gIHZhciB3YiA9IG5ldyBXb3JrYm9vaygpLFxyXG4gICAgd3MgPSBzaGVldF9mcm9tX2FycmF5X29mX2FycmF5cyhkYXRhKTtcclxuXHJcbiAgaWYgKG1lcmdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAoIXdzWychbWVyZ2VzJ10pIHdzWychbWVyZ2VzJ10gPSBbXTtcclxuICAgIG1lcmdlcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICB3c1snIW1lcmdlcyddLnB1c2goWExTWC51dGlscy5kZWNvZGVfcmFuZ2UoaXRlbSkpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaWYgKGF1dG9XaWR0aCkge1xyXG4gICAgLyrorr7nva53b3Jrc2hlZXTmr4/liJfnmoTmnIDlpKflrr3luqYqL1xyXG4gICAgY29uc3QgY29sV2lkdGggPSBkYXRhLm1hcChyb3cgPT4gcm93Lm1hcCh2YWwgPT4ge1xyXG4gICAgICAvKuWFiOWIpOaWreaYr+WQpuS4um51bGwvdW5kZWZpbmVkKi9cclxuICAgICAgaWYgKHZhbCA9PSBudWxsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiAxMFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgLyrlho3liKTmlq3mmK/lkKbkuLrkuK3mlocqL1xyXG4gICAgICBlbHNlIGlmICh2YWwudG9TdHJpbmcoKS5jaGFyQ29kZUF0KDApID4gMjU1KSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICd3Y2gnOiB2YWwudG9TdHJpbmcoKS5sZW5ndGggKiAyXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgJ3djaCc6IHZhbC50b1N0cmluZygpLmxlbmd0aFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pKVxyXG4gICAgLyrku6XnrKzkuIDooYzkuLrliJ3lp4vlgLwqL1xyXG4gICAgbGV0IHJlc3VsdCA9IGNvbFdpZHRoWzBdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBjb2xXaWR0aC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbFdpZHRoW2ldLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgaWYgKHJlc3VsdFtqXVsnd2NoJ10gPCBjb2xXaWR0aFtpXVtqXVsnd2NoJ10pIHtcclxuICAgICAgICAgIHJlc3VsdFtqXVsnd2NoJ10gPSBjb2xXaWR0aFtpXVtqXVsnd2NoJ107XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB3c1snIWNvbHMnXSA9IHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIGFkZCB3b3Jrc2hlZXQgdG8gd29ya2Jvb2sgKi9cclxuICB3Yi5TaGVldE5hbWVzLnB1c2god3NfbmFtZSk7XHJcbiAgd2IuU2hlZXRzW3dzX25hbWVdID0gd3M7XHJcblxyXG4gIHZhciB3Ym91dCA9IFhMU1gud3JpdGUod2IsIHtcclxuICAgIGJvb2tUeXBlOiBib29rVHlwZSxcclxuICAgIGJvb2tTU1Q6IGZhbHNlLFxyXG4gICAgdHlwZTogJ2JpbmFyeSdcclxuICB9KTtcclxuICBzYXZlQXMobmV3IEJsb2IoW3MyYWIod2JvdXQpXSwge1xyXG4gICAgdHlwZTogXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxyXG4gIH0pLCBgJHtmaWxlbmFtZX0uJHtib29rVHlwZX1gKTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///4bf8d\n")},5:function(module,exports){eval("/* (ignored) */\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3RyZWFtIChpZ25vcmVkKT9lOGViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///5\n")},"5b04":function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcwQzVCQUQwRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcwQzVCQUQxRTJGRDExRTg5MUY5RUY2Qjk5RjEyRjhDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzBDNUJBQ0VFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzBDNUJBQ0ZFMkZEMTFFODkxRjlFRjZCOTlGMTJGOEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6zW/dSAAABRklEQVR42mIsurPoMAMDgw0DEeDf/38MerKq01ec3FEA5P6CiTMRawAI/Przi4GbnTMzzMy9B8hlQzaEaPDzz08wzcvBlYtsEEmG/P//n+HFx9dwgwKMHBeCDGIhxRA2ZjaGA9dPMHz+8ZmBk5WTQYhHKAIonEaSIeys7AzifOIMgtyCDIyMjAzsLOxA0Xc/STKEmYmZgYudiwEEkcMba5gkSNgzKHGKo4iB+CBxbACrIYc+XGeIF7eDGwSiQfxDH29gqNWRVmXA6p17P14xLHxxkCEeaPP+D1cZHAW0GRa+PMRw7/tL4l0CM2jvhysMvsLGYINwGYDXECUOMQZnAR2GTW/Pgl2CHkYEDQEZAPIKyAsHP1yDeA0pjIgyxFZAEyUMYGFky6+B1RCsAQvSgC2M7r14RVqYkAKGoSFHKNB/FEQABBgA4eJpzEuBL1sAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZz8xZWRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiI1YjA0LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPamN3UXpWQ1FVUXdSVEpHUkRFeFJUZzVNVVk1UlVZMlFqazVSakV5UmpoRElpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qY3dRelZDUVVReFJUSkdSREV4UlRnNU1VWTVSVVkyUWprNVJqRXlSamhESWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk56QkROVUpCUTBWRk1rWkVNVEZGT0RreFJqbEZSalpDT1RsR01USkdPRU1pSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TnpCRE5VSkJRMFpGTWtaRU1URkZPRGt4UmpsRlJqWkNPVGxHTVRKR09FTWlMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejZ6Vy9kU0FBQUJSa2xFUVZSNDJtSXN1clBvTUFNRGd3MERFZURmLzM4TWVyS3EwMWVjM0ZFQTVQNkNpVE1SYXdBSS9QcnppNEdiblRNenpNeTlCOGhsUXphRWFQRHp6MDh3emN2QmxZdHNFRW1HL1AvL24rSEZ4OWR3Z3dLTUhCZUNER0loeFJBMlpqYUdBOWRQTUh6KzhabUJrNVdUUVloSEtBSW9uRWFTSWV5czdBemlmT0lNZ3R5Q0RJeU1qQXpzTE94QTBYYy9TVEtFbVltWmdZdWRpd0VFa2NNYmE1Z2tTTmd6S0hHS280aUIrQ0J4YkFDcklZYytYR2VJRjdlREd3U2lRZnhESDI5Z3FOV1JWbVhBNnAxN1AxNHhMSHh4a0NFZWFQUCtEMWNaSEFXMEdSYStQTVJ3Ny90TDRsMENNMmp2aHlzTXZzTEdZSU53R1lEWEVDVU9NUVpuQVIyR1RXL1BnbDJDSGtZRURRRVpBUElLeUFzSFAxeURlQTBwaklneXhGWkFFeVVNWUdGa3k2K0IxUkNzQVF2U2dDMk03cjE0UlZxWWtBS0dvU0ZIS05CL0ZFUUFCQmdBNGVKcHpFdUJMMXNBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///5b04\n')},"6a8e":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9iYjE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjZhOGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///6a8e\n")},"7ecc":function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9jYzE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6IjdlY2MuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///7ecc\n")},8467:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjcxRTkyMzUzRTk2RjExRThBRDZEODkyQTM3RTRGQzRGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjcxRTkyMzU0RTk2RjExRThBRDZEODkyQTM3RTRGQzRGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NzFFOTIzNTFFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NzFFOTIzNTJFOTZGMTFFOEFENkQ4OTJBMzdFNEZDNEYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz44Rtp4AAABPElEQVR42mJsWbjvMAMDgw0DEeDfv38MkrLy06+eP10A5P6CiTMRawAI/Pr9m4GNjT1T28CkB8hlQzaEaPD7128wzcbOkYtsEEmG/P/PwPDh/Xu4Qeo6BgtBTBZSDGFlZWG4evkyw9ev3xg42NkYBAT4I4DCaVgNYWZiYnA2VmbQURJnYGRkZLh89wXD3rN3geHByiAqIsQgwM8HFAcaCuR/+fj9J1ZDnIAGCPFxMszadArM97HSYLA3UGTYd+4uAycnMxAj1H4BhjfWMNEFumDLsRsMX77/AmMQ20BVEqc3sbqkb+URosNJREyCgWDA8nKxM3hZqjNcuPOcNJfAQHWcI8OPX3/AAXvw/H3yDAGB3hWHCXqJpMRGliGti/ZTbkichxHlhizacY5yQ6gSJnQ35AgF+o+CCIAAAwB921Zg2fHMEAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nPzAwYTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6Ijg0NjcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qY3hSVGt5TXpVelJUazJSakV4UlRoQlJEWkVPRGt5UVRNM1JUUkdRelJHSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2pjeFJUa3lNelUwUlRrMlJqRXhSVGhCUkRaRU9Ea3lRVE0zUlRSR1F6UkdJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TnpGRk9USXpOVEZGT1RaR01URkZPRUZFTmtRNE9USkJNemRGTkVaRE5FWWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOekZGT1RJek5USkZPVFpHTVRGRk9FRkVOa1E0T1RKQk16ZEZORVpETkVZaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NDRSdHA0QUFBQlBFbEVRVlI0Mm1Kc1dianZNQU1EZ3cwREVlRGZ2MzhNa3JMeTA2K2VQMTBBNVA2Q2lUTVJhd0FJL1ByOW00R05qVDFUMjhDa0I4aGxRemFFYVBENzEyOHd6Y2JPa1l0c0VFbUcvUC9Qd1BEaC9YdTRRZW82Qmd0QlRCWlNER0ZsWldHNGV2a3l3OWV2M3hnNDJOa1lCQVQ0STREQ2FWZ05ZV1ppWW5BMlZtYlFVUkpuWUdSa1pMaDg5d1hEM3JOM2dlSEJ5aUFxSXNRZ3dNOEhGQWNhQ3VSLytmajlKMVpEbklBR0NQRnhNc3phZEFyTTk3SFNZTEEzVUdUWWQrNHVBeWNuTXhBajFINEJoamZXTU5FRnVtRExzUnNNWDc3L0FtTVEyMEJWRXFjM3NicWtiK1VSb3NOSlJFeUNnV0RBOG5LeE0zaFpxak5jdVBPY05KZkFRSFdjSThPUFgzL0FBWHZ3L0gzeURBR0IzaFdIQ1hxSnBNUkdsaUd0aS9aVGJraWNoeEhsaGl6YWNZNXlRNmdTSm5RMzVBZ0YrbytDQ0lBQUF3QjkyMVpnMmZITUVBQUFBQUJKUlU1RXJrSmdnZz09XCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8467\n')},"8a30":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ed49");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_83fdb566_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/NzZiNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiOGEzMC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04M2ZkYjU2NiZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///8a30\n')},"8bf0":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',[_c(\'flexbox\',{directives:[{name:"show",rawName:"v-show",value:(_vm.selectionList.length == 0),expression:"selectionList.length == 0"}],staticClass:"th-container"},[_c(\'img\',{staticClass:"c-filtrate",style:({ \'margin-left\': _vm.isSeas ? 0 : \'30px\' }),attrs:{"src":__webpack_require__("de0b")},on:{"click":_vm.showFilterClick}}),_c(\'div\',{staticClass:"condition_title",on:{"click":_vm.showFilterClick}},[_vm._v("高级筛选")]),_c(\'filter-form\',{attrs:{"field-list":_vm.fieldList,"dialog-visible":_vm.showFilter,"obj":_vm.filterObj,"crm-type":_vm.crmType,"is-seas":_vm.isSeas},on:{"update:dialogVisible":function($event){_vm.showFilter=$event},"update:dialog-visible":function($event){_vm.showFilter=$event},"filter":_vm.handleFilter}})],1),_c(\'scene-set\',{attrs:{"dialog-visible":_vm.showSceneSet,"crm-type":_vm.crmType},on:{"update:dialogVisible":function($event){_vm.showSceneSet=$event},"update:dialog-visible":function($event){_vm.showSceneSet=$event},"save-success":_vm.updateSceneList}}),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showSceneCreate,"obj":_vm.sceneFilterObj},on:{"update:dialogVisible":function($event){_vm.showSceneCreate=$event},"update:dialog-visible":function($event){_vm.showSceneCreate=$event},"saveSuccess":_vm.updateSceneList}})],1)}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=template&id=a399b9bc&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.function.name.js\nvar es6_function_name = __webpack_require__("7f7f");\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// EXTERNAL MODULE: ./src/views/ux/model/crmTypeModel.js\nvar crmTypeModel = __webpack_require__("96c3");\n\n// EXTERNAL MODULE: ./src/api/ux/common.js\nvar common = __webpack_require__("bb9a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\nvar filterFormvue_type_template_id_83fdb566_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{directives:[{name:"dialogDrag",rawName:"v-dialogDrag"}],attrs:{"visible":_vm.visible,"close-on-click-modal":false,"title":"高级筛选","width":"900px","append-to-body":true},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticStyle:{"margin-bottom":"10px"}},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(_vm.showCalCondition(formItem.formType))?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择筛选方法"},on:{"change":function($event){return _vm.actionChange(formItem)}},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(\n formItem.formType,\n formItem\n )),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' ||\n formItem.formType === \'date\' ||\n formItem.formType === \'map_address\'\n ? 13\n : 8}},[(formItem.formType === \'switch\')?_c(\'el-switch\',{attrs:{"value":formItem.value},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"clearable":"","placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.split(\',\')[1],attrs:{"label":item.split(\',\')[0],"value":item.split(\',\')[1]}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(\n formItem.formType === \'date\' ||\n formItem.formType === \'datetime\'\n )?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\'\n ? \'yyyy-MM-dd\'\n : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):(\n formItem.formType != \'text\' &&\n formItem.fieldName.endsWith(\'ID\')\n )?_c(\'crm-relative-cell\',{ref:"CrmRelativeCell",refInFor:true,attrs:{"item":formItem,"relation":{ type: formItem.formType },"radio":false,"disabled":formItem.disabled},on:{"value-change":_vm.valueChange}}):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=template&id=83fdb566&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.ends-with.js\nvar es6_string_ends_with = __webpack_require__("aef6");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.find.js\nvar es6_array_find = __webpack_require__("7514");\n\n// EXTERNAL MODULE: ./src/utils/index.js\nvar utils = __webpack_require__("ed08");\n\n// EXTERNAL MODULE: ./src/components/CreateCom/index.js + 108 modules\nvar CreateCom = __webpack_require__("f068");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n // import { XhUserCell, XhProuctCate } from \'@/components/CreateCom\'\n// import VDistpicker from \'v-distpicker\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var filterFormvue_type_script_lang_js_ = ({\n name: "Index",\n components: {\n "crm-relative-cell": CreateCom["a" /* CrmRelativeCell */] // XhUserCell,\n // XhProuctCate,\n // VDistpicker\n\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n },\n\n /** 获取客户管理下列表权限内的员工列表 针对 usersList */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n showErrors: false,\n saveChecked: false,\n // 展示场景\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n if (val) {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push({\n fieldName: "",\n name: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: "",\n typeOption: [],\n statusOption: [],\n typeId: "",\n statusId: "",\n address: {\n state: "",\n city: "",\n area: ""\n }\n });\n }\n\n this.saveChecked = false;\n this.saveDefault = false;\n this.saveName = null;\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById("filter-container");\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n /**\r\n * 位置更改\r\n */\n selectProvince: function selectProvince(data, formItem) {\n formItem.address.state = data.value;\n },\n selectCity: function selectCity(data, formItem) {\n formItem.address.city = data.value;\n },\n selectArea: function selectArea(data, formItem) {\n formItem.address.area = data.value;\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = "";\n },\n\n /**\r\n * 用户创建人\r\n * 产品类别\r\n */\n arrayValueChange: function arrayValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n data.item.valueContent = data.valueContent;\n } else {\n data.item.value = [];\n }\n },\n\n /**\r\n * 是否展示条件\r\n */\n showCalCondition: function showCalCondition(formType) {\n if (formType == "date" || formType == "datetime" || formType == "business_type" || formType == "category" || formType == "map_address") {\n return false;\n }\n\n return true;\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n //bool 或者 枚举类型\n if (formType == "select" || formType == "switch" || formType == "checkbox" // ||formType == \'user\' ||\n // formType == \'checkStatus\'\n ) {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }];\n } //字符串类型\n else if (formType == "module" || formType == "text" || formType == "textarea") {\n return [{\n action: 0,\n value: "is",\n label: "等于",\n disabled: false\n }, {\n action: 1,\n value: "isNot",\n label: "不等于",\n disabled: false\n }, {\n value: "contains",\n label: "包含",\n disabled: false\n }, {\n value: "notContains",\n label: "不包含",\n disabled: false\n }];\n } //数值类型\n else if (formType == "floatnumber" || formType == "number") {\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n }, // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n {\n value: "gt",\n label: "大于",\n disabled: false\n }, {\n value: "egt",\n label: "大于等于",\n disabled: false\n }, {\n value: "lt",\n label: "小于",\n disabled: false\n }, {\n value: "elt",\n label: "小于等于",\n disabled: false\n }];\n } else if (formType == "datetime") {\n return [{\n value: "startWith",\n label: "开始于",\n disabled: false\n }, {\n value: "endWith",\n label: "结束于",\n disabled: false\n }];\n } // else if (formType == \'category\') {\n // return [\n // { value: \'is\', label: \'等于\', disabled: false },\n // { value: \'isnot\', label: \'不等于\', disabled: false },\n // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'not_contain\', label: \'不包含\', disabled: false }\n // ]\n // }\n else {\n //默认查询条件\n return [{\n value: "is",\n label: "等于",\n disabled: false\n }, {\n value: "isNot",\n label: "不等于",\n disabled: false\n } // { value: \'contains\', label: \'包含\', disabled: false },\n // { value: \'notContains\', label: \'不包含\', disabled: false },\n // { value: \'startWith\', label: \'开始于\', disabled: false },\n // { value: \'endWith\', label: \'结束于\', disabled: false },\n // { value: \'isNull\', label: \'为空\', disabled: false },\n // { value: \'isNotNull\', label: \'不为空\', disabled: false },\n // { value: \'gt\', label: \'大于\', disabled: false },\n // { value: \'egt\', label: \'大于等于\', disabled: false },\n // { value: \'lt\', label: \'小于\', disabled: false },\n // { value: \'elt\', label: \'小于等于\', disabled: false }\n ];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType === "date" || formItem.formType === "datetime") {\n formItem.value = [];\n } else if (formItem.formType == "select") {\n formItem.setting = obj.setting || [];\n formItem.value = "";\n } //关联表\n else if (formItem.formType != "text" && formItem.fieldName.endsWith("ID")) {\n //清空内容\n formItem.value = "";\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n actionChange: function actionChange(formItem) {\n switch (formItem.condition) {\n case "is":\n // 等于\n formItem.action = 0;\n break;\n\n case "isNot":\n // 不等于\n formItem.action = 1;\n break;\n\n case "gt":\n //大于\n formItem.action = 2;\n break;\n\n case "lt":\n //小于\n formItem.action = 3;\n break;\n\n case ("egt", "startWith"):\n //大于等于\n formItem.action = 4;\n break;\n\n case ("elt", "endWith"):\n //小于等于\n formItem.action = 5;\n break;\n\n case "contains":\n // 类似于\n formItem.action = 6;\n break;\n\n case "notContains":\n //不类似于\n formItem.action = 7;\n break;\n\n default:\n return 0;\n }\n },\n valueChange: function valueChange(data) {\n var type = data.type;\n var formItem = this.form.find(function (item) {\n return item.formType === type;\n });\n\n if (formItem != null && data.value[0] != null && data.value[0]["Id"] != null) {\n formItem.value = data.value[0]["Id"];\n formItem.displadValue = data.value[0]["Name"];\n }\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.$emit("update:dialogVisible", false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error("筛选条件中有重复项!");\n return;\n }\n\n if (this.saveChecked) {\n if (!this.saveName || this.saveName === "") {\n this.$message.error("场景名称不能为空!");\n return;\n }\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === "") {\n this.$emit("filter", null);\n return;\n } else {\n if (o.formType == "date" || o.formType == "datetime") {\n if (!o.value || o.value.length === 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n } else if (o.formType == "text") {\n if (!o.value && o.value !== 0) {\n this.$message.error("请输入筛选条件的值!");\n return;\n }\n } //关联表\n else if (o.formType != "text" && o.fieldName.endsWith("ID")) {\n if (!o.value && o.value !== 0) {\n this.$message.error("请选择筛选条件的值!");\n return;\n }\n }\n }\n }\n\n var items = [];\n this.form.forEach(function (o) {\n var obj = {};\n\n if (o.formType == "text") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "datetime" || o.formType == "date") {\n obj = {\n condition: o.condition,\n action: o.action,\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "select") {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } else if (o.formType == "switch") {\n var value = o.value === false ? "false" : "true"; //o.value默认等于\'\'\n\n obj = {\n condition: o.condition,\n action: o.action,\n value: value,\n formType: o.formType,\n fieldName: o.fieldName\n };\n } //关联表\n else {\n obj = {\n condition: o.condition,\n action: o.action,\n value: o.value,\n formType: o.formType,\n fieldName: o.fieldName,\n displadValue: o.displadValue\n };\n }\n\n items.push(obj);\n });\n var data = {\n obj: items,\n form: this.form,\n saveChecked: this.saveChecked,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n data.obj = items;\n this.$emit("filter", data);\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n var _this$form$push;\n\n this.form.push((_this$form$push = {\n fieldName: "",\n formType: "text",\n condition: "is",\n action: 0,\n value: "",\n displadValue: ""\n }, Object(defineProperty["a" /* default */])(_this$form$push, "formType", ""), Object(defineProperty["a" /* default */])(_this$form$push, "setting", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "statusOption", []), Object(defineProperty["a" /* default */])(_this$form$push, "typeId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "statusId", ""), Object(defineProperty["a" /* default */])(_this$form$push, "data", []), _this$form$push));\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this = this;\n\n this.$confirm("您确定要删除这一条数据吗?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this.form.splice(index, 1);\n\n _this.form.forEach(function (itemForm) {\n //用于判断是否有重复项\n //this.fieldChange(item);\n var arr = _this.form.filter(function (item) {\n return item.fieldName === itemForm.fieldName;\n });\n\n if (arr.length > 1) _this.showErrors = true;else _this.showErrors = false;\n });\n }).catch(function () {\n _this.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_filterFormvue_type_script_lang_js_ = (filterFormvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/index.vue?vue&type=style&index=0&id=83fdb566&lang=scss&scoped=true&\nvar filterFormvue_type_style_index_0_id_83fdb566_lang_scss_scoped_true_ = __webpack_require__("8a30");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n components_filterFormvue_type_script_lang_js_,\n filterFormvue_type_template_id_83fdb566_scoped_true_render,\n filterFormvue_type_template_id_83fdb566_scoped_true_staticRenderFns,\n false,\n null,\n "83fdb566",\n null\n \n)\n\n/* harmony default export */ var filterForm = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\nvar filterContentvue_type_template_id_38580f22_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"wrapper"},[_c(\'ul\',{staticClass:"list"},_vm._l((_vm.showObj.form),function(item,index){return _c(\'li\',{key:index,staticClass:"list-item"},[(item.formType == \'date\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'datetime\')?_c(\'span\',[_vm._v(_vm._s(item.name +\' “\' + item.value[0] + \'-\' + item.value[1] + \'”\'))]):(item.formType === \'select\' && item.value.length > 0)?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSelectName(item) + \'”\'))]):(item.formType === \'switch\')?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getSwitchName(item) + \'”\'))]):(item.formType != \'text\' && item.fieldName.endsWith(\'ID\'))?_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + _vm.getRelativeName(item) + \'”\'))]):_c(\'span\',[_vm._v(_vm._s(item.name + \' \' + _vm.optionsNames[item.condition] + \'“\' + item.value + \'”\'))]),_c(\'i\',{staticClass:"el-icon-close icon",on:{"click":function($event){return _vm.handleDelete(item, index)}}})])}),0)])}\nvar filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=template&id=38580f22&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.regexp.split.js\nvar es6_regexp_split = __webpack_require__("28a5");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ var filterContentvue_type_script_lang_js_ = ({\n name: \'FilterContent\',\n props: {\n obj: {\n type: Object,\n required: true,\n default: function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n // 获取条件名称\n optionsNames: {\n is: \'等于\',\n isNot: \'不等于\',\n contains: \'包含\',\n notContains: \'不包含\',\n startWith: \'开始于\',\n endWith: \'结束于\',\n isNull: \'为空\',\n isNotNull: \'不为空\',\n eq: \'等于\',\n neq: \'不等于\',\n gt: \'大于\',\n egt: \'大于等于\',\n lt: \'小于\',\n elt: \'小于等于\'\n },\n // 展示信息\n showObj: {}\n };\n },\n computed: {},\n watch: {\n obj: function obj(val) {\n this.showObj = val;\n }\n },\n mounted: function mounted() {\n this.showObj = this.obj;\n },\n methods: {\n /**\r\n * 删除高级筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(item, index) {\n this.$delete(this.showObj.obj, item.fieldName);\n this.showObj.form.splice(index, 1);\n this.$emit(\'delete\', {\n item: item,\n index: index,\n obj: this.showObj\n });\n },\n // 商机组展示名称\n getTypesName: function getTypesName(data) {\n if (data.typeId) {\n var obj = data.typeOption.find(function (item) {\n return item.typeId === data.typeId;\n });\n return obj.name || \'\';\n }\n\n return \'\';\n },\n getCheckName: function getCheckName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.value === data.value) {\n value = item.name;\n return;\n }\n });\n return value;\n },\n // 商机阶段展示名称\n getStatusName: function getStatusName(data) {\n if (data.statusId) {\n var obj = data.statusOption.find(function (item) {\n return item.statusId === data.statusId;\n });\n\n if (obj.name) {\n return \'-\' + obj.name;\n }\n\n return \'\';\n }\n\n return \'\';\n },\n getSelectName: function getSelectName(data) {\n var value = \'\';\n data.setting.forEach(function (item) {\n if (item.split(",")[1] === data.value) {\n value = item.split(",")[0];\n return;\n }\n });\n return value;\n },\n getSwitchName: function getSwitchName(data) {\n return data.value === false ? \'否\' : \'是\';\n },\n getRelativeName: function getRelativeName(data) {\n return data.displadValue;\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=script&lang=js&\n /* harmony default export */ var filterForm_filterContentvue_type_script_lang_js_ = (filterContentvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue?vue&type=style&index=0&id=38580f22&scoped=true&lang=scss&\nvar filterContentvue_type_style_index_0_id_38580f22_scoped_true_lang_scss_ = __webpack_require__("96e9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/filterForm/filterContent.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar filterContent_component = Object(componentNormalizer["a" /* default */])(\n filterForm_filterContentvue_type_script_lang_js_,\n filterContentvue_type_template_id_38580f22_scoped_true_render,\n filterContentvue_type_template_id_38580f22_scoped_true_staticRenderFns,\n false,\n null,\n "38580f22",\n null\n \n)\n\n/* harmony default export */ var filterContent = (filterContent_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\nvar SceneSetvue_type_template_id_2063606a_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"visible":_vm.visible,"append-to-body":true,"title":"场景管理","width":"700px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("您可通过拖拽管理标签")]),_c(\'flexbox\',{staticClass:"scene-list"},[_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isleftIndeterminate},on:{"change":_vm.handleleftCheckAllChange},model:{value:(_vm.checkleftAll),callback:function ($$v) {_vm.checkleftAll=$$v},expression:"checkleftAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("显示的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.leftCheckItems.length + \'/\' + _vm.checkedLeftData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem == 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",attrs:{"disabled":true},on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'el-dropdown\',{attrs:{"trigger":"click"},on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.leftMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.leftMoveEnd},model:{value:(_vm.checkedLeftData),callback:function ($$v) {_vm.checkedLeftData=$$v},expression:"checkedLeftData"}},_vm._l((_vm.checkedLeftData),function(item,index){return (item.isSystem != 1)?_c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'div\',{staticClass:"default-mark",class:{\'default-mark-active\': item.sceneId == _vm.defaultId}}),_c(\'el-checkbox\',{staticClass:"list-item-check",on:{"change":_vm.leftCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))]),_c(\'div\',{staticClass:"list-item-handle"},[_c(\'i\',{staticClass:"el-icon-edit",on:{"click":function($event){return _vm.itemHandle(\'edit\', item, index)}}}),_c(\'i\',{staticClass:"el-icon-delete",on:{"click":function($event){return _vm.itemHandle(\'delete\', item, index)}}}),_c(\'el-dropdown\',{on:{"command":_vm.defaultHandle}},[_c(\'i\',{staticClass:"el-icon-arrow-down",on:{"click":function($event){return _vm.itemHandle(\'default\', item, index)}}}),_c(\'el-dropdown-menu\',{attrs:{"slot":"dropdown"},slot:"dropdown"},[_c(\'el-dropdown-item\',[_vm._v("设置为默认标签")])],1)],1)],1)],1):_vm._e()}),1)],2)],1),_c(\'div\',{staticClass:"scene-middle-list"},[_c(\'el-button\',{staticClass:"scene-middle-left-button",class:{\'scene-middle-button-select\':_vm.rightCheckItems.length > 0},attrs:{"disabled":_vm.rightCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'left\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-left scene-middle-icon"})]),_c(\'el-button\',{staticClass:"scene-middle-right-button",class:{\'scene-middle-button-select\':_vm.leftCheckItems.length > 0},attrs:{"disabled":_vm.leftCheckItems.length == 0},on:{"click":function($event){return _vm.changePositon(\'right\')}}},[_c(\'i\',{staticClass:"el-icon-arrow-right scene-middle-icon"})])],1),_c(\'div\',{staticClass:"scene-list-box"},[_c(\'flexbox\',{staticClass:"scene-list-head"},[_c(\'el-checkbox\',{attrs:{"indeterminate":_vm.isrightIndeterminate},on:{"change":_vm.handlerightCheckAllChange},model:{value:(_vm.checkrightAll),callback:function ($$v) {_vm.checkrightAll=$$v},expression:"checkrightAll"}}),_c(\'div\',{staticClass:"scene-list-head-name"},[_vm._v("隐藏的标签")]),_c(\'div\',{staticClass:"scene-list-head-detail"},[_vm._v(_vm._s(_vm.rightCheckItems.length + \'/\' + _vm.checkedRightData.length))])],1),_c(\'div\',{staticClass:"scene-list-body"},[_c(\'draggable\',{staticStyle:{"min-height":"100px"},attrs:{"move":_vm.rightMove,"options":{group: \'list\',forceFallback:false, fallbackClass:\'draggingStyle\'}},on:{"end":_vm.rightMoveEnd},model:{value:(_vm.checkedRightData),callback:function ($$v) {_vm.checkedRightData=$$v},expression:"checkedRightData"}},_vm._l((_vm.checkedRightData),function(item,index){return _c(\'flexbox\',{key:index,staticClass:"list-item"},[_c(\'el-checkbox\',{staticClass:"list-item-check",staticStyle:{"margin-left":"9px"},on:{"change":_vm.rightCheckItemChange},model:{value:(item.check),callback:function ($$v) {_vm.$set(item, "check", $$v)},expression:"item.check"}}),_c(\'div\',{staticClass:"list-item-name"},[_vm._v(_vm._s(item.name))])],1)}),1)],1)],1)]),_c(\'div\',{staticClass:"handle-bar"},[_c(\'div\',{staticClass:"handle-bar-add",on:{"click":function($event){return _vm.addAndEditScene(\'add\',{})}}},[_vm._v("+ 新建场景")]),_c(\'div\',{staticClass:"handle-bar-save"},[_c(\'el-button\',{nativeOn:{"click":function($event){return _vm.handleCancel($event)}}},[_vm._v("取消")]),_c(\'el-button\',{attrs:{"type":"primary"},nativeOn:{"click":function($event){return _vm.handleConfirm($event)}}},[_vm._v("保存")])],1)]),_c(\'scene-create\',{attrs:{"field-list":_vm.fieldList,"crm-type":_vm.crmType,"dialog-visible":_vm.showCreateScene,"obj":_vm.filterObj,"name":_vm.filterName,"edit_id":_vm.filterEditId,"is-default":_vm.filterDefault},on:{"update:dialogVisible":function($event){_vm.showCreateScene=$event},"update:dialog-visible":function($event){_vm.showCreateScene=$event},"saveSuccess":_vm.getSceneList}})],1)}\nvar SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=template&id=2063606a&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/vuedraggable/dist/vuedraggable.umd.js\nvar vuedraggable_umd = __webpack_require__("b76a");\nvar vuedraggable_umd_default = /*#__PURE__*/__webpack_require__.n(vuedraggable_umd);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'el-dialog\',{attrs:{"title":_vm.edit_id ? \'编辑场景\' : \'新建场景\',"visible":_vm.visible,"append-to-body":true,"width":"800px"},on:{"update:visible":function($event){_vm.visible=$event},"close":_vm.handleCancel}},[_c(\'div\',{staticClass:"scene-name-container"},[_c(\'div\',{staticClass:"scene-name"},[_vm._v("场景名称")]),_c(\'el-input\',{staticClass:"scene-input",attrs:{"maxlength":10,"placeholder":"请输入场景名称,最多10个字符"},model:{value:(_vm.saveName),callback:function ($$v) {_vm.saveName=(typeof $$v === \'string\'? $$v.trim(): $$v)},expression:"saveName"}})],1),_c(\'div\',{staticClass:"scene-name"},[_vm._v("筛选条件")]),_c(\'el-form\',{staticClass:"filter-container",attrs:{"id":"scene-filter-container"}},[_c(\'el-form-item\',[_vm._l((_vm.form),function(formItem,index){return [_c(\'el-row\',{key:index},[_c(\'el-col\',{attrs:{"span":8}},[_c(\'el-select\',{attrs:{"placeholder":"请选择要筛选的字段名"},on:{"change":function($event){return _vm.fieldChange(formItem)}},model:{value:(formItem.fieldName),callback:function ($$v) {_vm.$set(formItem, "fieldName", $$v)},expression:"formItem.fieldName"}},_vm._l((_vm.fieldList),function(item){return _c(\'el-option\',{key:item.fieldName,attrs:{"label":item.name,"value":item.fieldName}})}),1)],1),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType !== \'date\' && formItem.formType !== \'datetime\' && formItem.formType !== \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择范围"},model:{value:(formItem.condition),callback:function ($$v) {_vm.$set(formItem, "condition", $$v)},expression:"formItem.condition"}},_vm._l((_vm.calConditionOptions(formItem.formType, formItem)),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.label,"value":item.value}})}),1)],1):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":1}}):_vm._e(),(formItem.formType == \'business_type\')?_c(\'el-col\',{attrs:{"span":4}},[_c(\'el-select\',{attrs:{"placeholder":"请选择"},on:{"change":function($event){return _vm.typeOptionsChange(formItem)}},model:{value:(formItem.typeId),callback:function ($$v) {_vm.$set(formItem, "typeId", $$v)},expression:"formItem.typeId"}},_vm._l((formItem.typeOption),function(item){return _c(\'el-option\',{key:item.typeId,attrs:{"label":item.name,"value":item.typeId}})}),1)],1):_vm._e(),_c(\'el-col\',{attrs:{"span":1}}),_c(\'el-col\',{attrs:{"span":formItem.formType === \'datetime\' || formItem.formType === \'date\' ? 13 : 8}},[(formItem.formType === \'select\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item,attrs:{"label":item,"value":item}})}),1):(formItem.formType === \'checkStatus\')?_c(\'el-select\',{attrs:{"placeholder":"请选择筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}},_vm._l((formItem.setting),function(item){return _c(\'el-option\',{key:item.value,attrs:{"label":item.name,"value":item.value}})}),1):(formItem.formType === \'date\' || formItem.formType === \'datetime\')?_c(\'el-date-picker\',{staticStyle:{"padding":"0px 10px"},attrs:{"value-format":formItem.formType === \'date\' ? \'yyyy-MM-dd\' : \'yyyy-MM-dd HH:mm:ss\',"type":formItem.formType === \'date\' ? \'daterange\' : \'datetimerange\',"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}}):(formItem.formType === \'business_type\')?_c(\'el-select\',{attrs:{"placeholder":"请选择"},model:{value:(formItem.statusId),callback:function ($$v) {_vm.$set(formItem, "statusId", $$v)},expression:"formItem.statusId"}},_vm._l((formItem.statusOption),function(item){return _c(\'el-option\',{key:item.statusId,attrs:{"label":item.name,"value":item.statusId}})}),1):_c(\'el-input\',{attrs:{"placeholder":"请输入筛选条件"},model:{value:(formItem.value),callback:function ($$v) {_vm.$set(formItem, "value", $$v)},expression:"formItem.value"}})],1),_c(\'el-col\',{staticClass:"delete",attrs:{"span":1}},[_c(\'i\',{staticClass:"el-icon-error delete-btn",on:{"click":function($event){return _vm.handleDelete(index)}}})])],1)]})],2)],1),_c(\'p\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showErrors),expression:"showErrors"}],staticClass:"el-icon-warning warning-info"},[_c(\'span\',{staticClass:"desc"},[_vm._v("筛选条件中有重复项!")])]),_c(\'el-button\',{attrs:{"type":"text"},on:{"click":_vm.handleAdd}},[_vm._v("+ 添加筛选条件")]),_c(\'div\',{staticClass:"save"},[_c(\'div\',{staticClass:"save-setting"},[_c(\'el-checkbox\',{model:{value:(_vm.saveDefault),callback:function ($$v) {_vm.saveDefault=$$v},expression:"saveDefault"}},[_vm._v("设置为默认")])],1)]),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{on:{"click":_vm.handleCancel}},[_vm._v("取 消")]),_c(\'el-button\',{attrs:{"type":"primary"},on:{"click":_vm.handleConfirm}},[_vm._v("确 定")])],1)],1)}\nvar SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=template&id=20aebb16&scoped=true&\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import { crmSceneSave, crmSceneUpdate } from \'@/api/customermanagement/common\'\n // import { XhUserCell } from \'@/components/CreateCom\'\n\n/**\r\n * fieldList: 高级筛选的字段\r\n * type: date || datetime || select || 其他 input\r\n */\n\n/* harmony default export */ var SceneCreatevue_type_script_lang_js_ = ({\n name: \'SceneCreate\',\n // 新建场景\n components: {// XhUserCell\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n fieldList: {\n type: Array,\n required: true,\n default: function _default() {\n return [];\n }\n },\n obj: {\n type: Object,\n default: function _default() {\n return {};\n },\n required: true\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n },\n\n /** 名字和 默认 id 编辑的时候需要 */\n name: {\n type: String,\n default: \'\'\n },\n isDefault: {\n type: Boolean,\n default: false\n },\n edit_id: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n form: [],\n visible: false,\n // 控制展示\n showErrors: false,\n saveDefault: false,\n // 设置为默认场景\n saveName: null // 场景名称\n\n };\n },\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n var _this = this;\n\n if (val) {\n // 处理编辑数据\n if (this.edit_id) {\n this.form = [];\n\n var _loop = function _loop(field) {\n var element = _this.obj.obj[field];\n\n var item = _this.getItem();\n\n item.fieldName = element.name;\n item.condition = element.condition;\n item.formType = element.formType;\n\n if (element.formType == \'date\') {\n item.value = [element.start_date, element.end_date];\n } else if (element.formType == \'datetime\') {\n item.value = [element.start, element.end];\n } else if (element.formType == \'business_type\') {\n item.typeId = element.typeId;\n item.statusId = element.statusId;\n item.typeOption = element.setting;\n\n if (element.typeId) {\n var obj = element.setting.find(function (typeItem) {\n return typeItem.typeId === element.typeId;\n });\n\n if (obj) {\n item.statusOption = obj.statusList;\n } else {\n item.statusOption = [];\n }\n }\n } else if (element.formType == \'user\') {\n item.value = element.setting ? [element.setting] : [];\n } else {\n item.setting = element.setting;\n item.value = element.value;\n }\n\n _this.form.push(item);\n };\n\n for (var field in this.obj.obj) {\n _loop(field);\n }\n } else {\n this.form = Object(utils["i" /* objDeepCopy */])(this.obj.form);\n\n if (this.form.length == 0) {\n this.form.push(this.getItem());\n }\n }\n /** 只有编辑会牵扯到这两个字段赋值 */\n\n\n if (this.name) {\n this.saveName = this.name;\n } else {\n this.saveName = \'\';\n }\n\n if (this.isDefault) {\n this.saveDefault = this.isDefault;\n } else {\n this.saveDefault = false;\n }\n }\n\n this.visible = this.dialogVisible;\n },\n deep: true,\n immediate: true\n },\n form: function form() {\n this.$nextTick(function () {\n var container = document.getElementById(\'scene-filter-container\');\n container.scrollTop = container.scrollHeight;\n });\n }\n },\n methods: {\n getItem: function getItem() {\n return {\n fieldName: \'\',\n name: \'\',\n formType: \'\',\n condition: \'is\',\n value: \'\',\n typeOption: [],\n statusOption: [],\n typeId: \'\',\n statusId: \'\'\n };\n },\n\n /**\r\n * 商机组状态\r\n */\n typeOptionsChange: function typeOptionsChange(formItem) {\n if (formItem.typeId) {\n var obj = formItem.typeOption.find(function (item) {\n return item.typeId === formItem.typeId;\n });\n formItem.statusOption = obj.statusList || [];\n } else {\n formItem.statusOption = [];\n }\n\n formItem.statusId = \'\';\n },\n\n /**\r\n * 用户创建人\r\n */\n userValueChange: function userValueChange(data) {\n if (data.value.length > 0) {\n data.item.value = data.value;\n } else {\n data.item.value = [];\n }\n },\n\n /** 条件数据源 */\n calConditionOptions: function calConditionOptions(formType, item) {\n if (formType == \'select\' || formType == \'checkbox\' || formType == \'user\' || formType == \'checkStatus\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }];\n } else if (formType == \'module\' || formType == \'text\' || formType == \'textarea\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }];\n } else if (formType == \'floatnumber\' || formType == \'number\') {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n } else {\n return [{\n value: \'is\',\n label: \'等于\',\n disabled: false\n }, {\n value: \'isNot\',\n label: \'不等于\',\n disabled: false\n }, {\n value: \'contains\',\n label: \'包含\',\n disabled: false\n }, {\n value: \'notContains\',\n label: \'不包含\',\n disabled: false\n }, {\n value: \'startWith\',\n label: \'开始于\',\n disabled: false\n }, {\n value: \'endWith\',\n label: \'结束于\',\n disabled: false\n }, {\n value: \'isNull\',\n label: \'为空\',\n disabled: false\n }, {\n value: \'isNotNull\',\n label: \'不为空\',\n disabled: false\n }, {\n value: \'gt\',\n label: \'大于\',\n disabled: false\n }, {\n value: \'egt\',\n label: \'大于等于\',\n disabled: false\n }, {\n value: \'lt\',\n label: \'小于\',\n disabled: false\n }, {\n value: \'elt\',\n label: \'小于等于\',\n disabled: false\n }];\n }\n },\n\n /**\r\n * 当前选择的字段名改变,判断是否有重复\r\n * @param formItem\r\n */\n fieldChange: function fieldChange(formItem) {\n var obj = this.fieldList.find(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n\n if (obj) {\n formItem.formType = obj.formType;\n formItem.name = obj.name;\n\n if (formItem.formType == \'business_type\') {\n formItem.typeOption = obj.setting;\n formItem.statusOption = [];\n formItem.typeId = \'\';\n formItem.statusId = \'\';\n } else if (formItem.formType == \'select\' || formItem.formType == \'checkStatus\') {\n formItem.setting = obj.setting || [];\n } else if (formItem.formType === \'date\' || formItem.formType === \'datetime\' || formItem.formType === \'user\') {\n formItem.value = [];\n }\n }\n\n var arr = this.form.filter(function (item) {\n return item.fieldName === formItem.fieldName;\n });\n if (arr.length > 1) this.showErrors = true;else this.showErrors = false;\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n if (this.showErrors) {\n this.$message.error(\'筛选条件中有重复项!\');\n return;\n }\n\n if (!this.saveName || this.saveName === \'\') {\n this.$message.error(\'场景名称不能为空!\');\n return;\n }\n\n for (var i = 0; i < this.form.length; i++) {\n var o = this.form[i];\n\n if (!o.fieldName || o.fieldName === \'\') {\n this.$message.error(\'要筛选的字段名称不能为空!\');\n return;\n }\n\n if (o.formType == \'business_type\') {\n if (!o.typeId && !o.statusId) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (o.formType == \'date\' || o.formType == \'datetime\' || o.formType == \'user\') {\n if (!o.value || o.value.length === 0) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n } else if (!o.value) {\n this.$message.error(\'请输入筛选条件的值!\');\n return;\n }\n }\n\n var obj = {};\n this.form.forEach(function (o) {\n if (o.formType == \'datetime\' || o.formType == \'date\') {\n obj[o.fieldName] = {\n start: o.value[0],\n end: o.value[1],\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'business_type\') {\n obj[o.fieldName] = {\n typeId: o.typeId,\n statusId: o.statusId,\n formType: o.formType,\n name: o.fieldName\n };\n } else if (o.formType == \'user\') {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value[0].userId,\n formType: o.formType,\n setting: o.value[0],\n name: o.fieldName\n };\n } else {\n obj[o.fieldName] = {\n condition: o.condition,\n value: o.value,\n formType: o.formType,\n name: o.fieldName\n };\n }\n });\n var data = {\n obj: obj,\n form: this.form,\n saveDefault: this.saveDefault,\n saveName: this.saveName\n };\n this.requestCreateScene(data);\n },\n // 创建场景\n requestCreateScene: function requestCreateScene(data) {\n /** 编辑操作 */\n if (this.edit_id) {// crmSceneUpdate({\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // sceneId: this.edit_id,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'编辑成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n } else {// crmSceneSave({\n // type: crmTypeModel[this.crmType],\n // isDefault: data.saveDefault ? 1 : 0,\n // name: data.saveName,\n // data: JSON.stringify(data.obj)\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'创建成功\'\n // })\n // // 新建成功\n // this.$emit(\'saveSuccess\')\n // this.handleCancel()\n // })\n // .catch(() => {})\n }\n },\n\n /**\r\n * 添加筛选条件\r\n */\n handleAdd: function handleAdd() {\n this.form.push(this.getItem());\n },\n\n /**\r\n * 删除筛选条件\r\n * @param index\r\n */\n handleDelete: function handleDelete(index) {\n var _this2 = this;\n\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n _this2.form.splice(index, 1);\n }).catch(function () {\n _this2.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneCreatevue_type_script_lang_js_ = (SceneCreatevue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue?vue&type=style&index=0&id=20aebb16&lang=scss&scoped=true&\nvar SceneCreatevue_type_style_index_0_id_20aebb16_lang_scss_scoped_true_ = __webpack_require__("e4fb");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneCreate.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneCreate_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneCreatevue_type_script_lang_js_,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_render,\n SceneCreatevue_type_template_id_20aebb16_scoped_true_staticRenderFns,\n false,\n null,\n "20aebb16",\n null\n \n)\n\n/* harmony default export */ var SceneCreate = (SceneCreate_component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n// import crmTypeModel from \'@/views/ux/model/crmTypeModel\'\n// import {\n// crmSceneSetIndex,\n// crmSceneSort,\n// crmSceneDefaults,\n// crmSceneDelete,\n// filterIndexfields\n// } from \'@/api/customermanagement/common\'\n\n // 新建编辑场景\n\n/* harmony default export */ var SceneSetvue_type_script_lang_js_ = ({\n name: \'SceneSet\',\n // 场景 设置\n components: {\n draggable: vuedraggable_umd_default.a,\n SceneCreate: SceneCreate\n },\n props: {\n dialogVisible: {\n type: Boolean,\n required: true,\n default: false\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: \'\'\n }\n },\n data: function data() {\n return {\n defaultId: \'\',\n // 默认场景id\n visible: false,\n // 控制展示\n isleftIndeterminate: false,\n // 标注头部是多选框效果\n checkleftAll: false,\n // 关联全选操作多选框\n checkedLeftData: [],\n // 数据源\n leftCheckItems: [],\n // 选择的数据源\n isrightIndeterminate: false,\n checkrightAll: false,\n checkedRightData: [],\n rightCheckItems: [],\n moveItem: {},\n // 移动中的item\n handlDefaultItem: {},\n // 设置默认的中间item\n\n /** 添加 编辑 场景 */\n showCreateScene: false,\n // 展示场景添加\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n filterName: \'\',\n filterDefault: false,\n filterEditId: \'\' // 编辑id\n\n };\n },\n computed: {},\n watch: {\n dialogVisible: {\n handler: function handler(val) {\n this.visible = val;\n\n if (val) {\n this.getSceneList();\n }\n },\n deep: true,\n immediate: true\n }\n },\n mounted: function mounted() {},\n methods: {\n getSceneList: function getSceneList() {// crmSceneSetIndex({\n // type: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.checkedLeftData = res.data.value.map(function(item, index) {\n // item.check = false\n // return item\n // })\n // this.checkedRightData = res.data.hide_value.map(function(\n // item,\n // index\n // ) {\n // item.check = false\n // return item\n // })\n // var defaultScene = this.checkedLeftData.filter(function(item, index) {\n // return item.isDefault == 1\n // })\n // // 如果有默认场景\n // if (defaultScene && defaultScene.length > 0) {\n // this.defaultId = defaultScene[0].sceneId\n // } else {\n // this.defaultId = \'\'\n // }\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 确定选择\r\n */\n handleConfirm: function handleConfirm() {\n // 如果选择默认的 不包含在左侧列表 重置为没有默认\n var self = this;\n var leftTemps = this.checkedLeftData.filter(function (item, index) {\n return item.sceneId == self.defaultId;\n });\n\n if (leftTemps.length == 0) {\n this.defaultId = \'\';\n } // crmSceneSort({\n // type: crmTypeModel[this.crmType],\n // noHideIds: this.checkedLeftData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\'),\n // hideIds: this.checkedRightData\n // .map(function(item, index, array) {\n // return item.sceneId\n // })\n // .join(\',\')\n // })\n // .then(res => {\n // this.$message({\n // type: \'success\',\n // message: \'操作成功\'\n // })\n // this.handleCancel()\n // this.$emit(\'save-success\')\n // })\n // .catch(() => {})\n\n },\n\n /** 事项操作 */\n itemHandle: function itemHandle(type, item, index) {\n var _this = this;\n\n if (type == \'edit\') {\n this.addAndEditScene(\'edit\', item);\n } else if (type == \'delete\') {\n this.$confirm(\'您确定要删除这一条数据吗?\', \'提示\', {\n confirmButtonText: \'确定\',\n cancelButtonText: \'取消\',\n type: \'warning\'\n }).then(function () {\n crmSceneDelete({\n sceneId: item.sceneId\n }).then(function (res) {\n _this.$message({\n type: \'success\',\n message: \'删除成功\'\n });\n\n _this.checkedLeftData.splice(index, 1);\n\n _this.leftCheckItemChange();\n\n _this.$emit(\'save-success\');\n }).catch(function () {});\n }).catch(function () {\n _this.$message({\n type: \'info\',\n message: \'已取消删除\'\n });\n });\n } else if (type == \'default\') {\n this.handlDefaultItem = item;\n }\n },\n\n /** 操作默认 */\n defaultHandle: function defaultHandle() {\n var _this2 = this;\n\n crmSceneDefaults({\n sceneId: this.handlDefaultItem.sceneId\n }).then(function (res) {\n _this2.$message({\n type: \'success\',\n message: \'操作成功\'\n });\n\n _this2.defaultId = _this2.handlDefaultItem.sceneId;\n }).catch(function () {});\n },\n\n /** 添加编辑场景 */\n addAndEditScene: function addAndEditScene(type, data) {// filterIndexfields({\n // label: crmTypeModel[this.crmType]\n // })\n // .then(res => {\n // this.fieldList = res.data\n // if (type == \'edit\') {\n // this.filterObj = { form: [], obj: data.data }\n // this.filterName = data.name\n // this.filterDefault = data.isDefault == 1\n // this.filterEditId = data.sceneId.toString()\n // } else {\n // this.filterObj = { form: [] }\n // this.filterEditId = \'\'\n // this.filterName = \'\'\n // this.filterDefault = false\n // }\n // this.showCreateScene = true\n // })\n // .catch(() => {})\n },\n\n /**\r\n * 取消选择\r\n */\n handleCancel: function handleCancel() {\n this.visible = false;\n this.$emit(\'update:dialogVisible\', false);\n },\n\n /** 拖拽操作 */\n rightMoveEnd: function rightMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n rightMove: function rightMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n leftMoveEnd: function leftMoveEnd(evt) {\n this.moveItem.check = false;\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n },\n leftMove: function leftMove(obj) {\n this.moveItem = obj.draggedContext.element;\n },\n // 选择全部\n handleleftCheckAllChange: function handleleftCheckAllChange(value) {\n if (value) {\n this.isleftIndeterminate = false;\n }\n\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.leftCheckItems = value ? this.checkedLeftData : [];\n },\n leftCheckItemChange: function leftCheckItemChange() {\n this.leftCheckItems = this.checkedLeftData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.leftCheckItems.length > 0) {\n if (this.leftCheckItems.length == this.checkedLeftData.length) {\n this.checkleftAll = true;\n this.isleftIndeterminate = false;\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = true;\n }\n } else {\n this.checkleftAll = false;\n this.isleftIndeterminate = false;\n }\n },\n // 选择全部\n handlerightCheckAllChange: function handlerightCheckAllChange(value) {\n if (value) {\n this.isrightIndeterminate = false;\n }\n\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n item.check = value;\n return item;\n });\n this.rightCheckItems = value ? this.checkedRightData : [];\n },\n rightCheckItemChange: function rightCheckItemChange() {\n this.rightCheckItems = this.checkedRightData.filter(function (item, index, array) {\n return item.check == true;\n });\n\n if (this.rightCheckItems.length > 0) {\n if (this.rightCheckItems.length == this.checkedRightData.length) {\n this.checkrightAll = true;\n this.isrightIndeterminate = false;\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = true;\n }\n } else {\n this.checkrightAll = false;\n this.isrightIndeterminate = false;\n }\n },\n // 按钮操作\n changePositon: function changePositon(type) {\n var self = this; // 从右往左\n\n if (type == \'left\') {\n this.checkedRightData = this.checkedRightData.filter(function (item, index, array) {\n var remove = false;\n self.rightCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.rightCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedLeftData.push(element);\n });\n this.rightCheckItems = [];\n this.isrightIndeterminate = false;\n this.checkrightAll = false; // 刷新左侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n } else {\n this.checkedLeftData = this.checkedLeftData.filter(function (item, index, array) {\n var remove = false;\n self.leftCheckItems.forEach(function (element, index) {\n if (item.sceneId == element.sceneId) {\n remove = true;\n }\n });\n return !remove;\n });\n this.leftCheckItems.forEach(function (element, index) {\n element.check = false;\n self.checkedRightData.push(element);\n });\n this.leftCheckItems = [];\n this.isleftIndeterminate = false;\n this.checkleftAll = false; // 刷新右侧效果\n\n this.leftCheckItemChange();\n this.rightCheckItemChange();\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=script&lang=js&\n /* harmony default export */ var sceneForm_SceneSetvue_type_script_lang_js_ = (SceneSetvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue?vue&type=style&index=0&id=2063606a&rel=stylesheet%2Fscss&lang=scss&scoped=true&\nvar SceneSetvue_type_style_index_0_id_2063606a_rel_stylesheet_2Fscss_lang_scss_scoped_true_ = __webpack_require__("20c9");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/sceneForm/SceneSet.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar SceneSet_component = Object(componentNormalizer["a" /* default */])(\n sceneForm_SceneSetvue_type_script_lang_js_,\n SceneSetvue_type_template_id_2063606a_scoped_true_render,\n SceneSetvue_type_template_id_2063606a_scoped_true_staticRenderFns,\n false,\n null,\n "2063606a",\n null\n \n)\n\n/* harmony default export */ var SceneSet = (SceneSet_component.exports);\n// EXTERNAL MODULE: ./static/tableFieldForSearch.json\nvar tableFieldForSearch = __webpack_require__("ceb4");\n\n// EXTERNAL MODULE: ./static/crmTypes.json\nvar crmTypes = __webpack_require__("928a");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n //获取表格列\n\n\n\n\n // 场景设置\n\n\n\n\n/* harmony default export */ var CRMTableHeadvue_type_script_lang_js_ = ({\n name: "CRMTableHead",\n // 客户管理下 重要提醒 回款计划提醒\n components: {\n filterForm: filterForm,\n filterContent: filterContent,\n SceneCreate: SceneCreate,\n SceneSet: SceneSet\n },\n props: {\n title: {\n type: String,\n default: ""\n },\n\n /** 没有值就是全部类型 有值就是当个类型 */\n crmType: {\n type: String,\n default: ""\n },\n // 辅助 使用 公海没有场景\n isSeas: {\n type: Boolean,\n default: false\n },\n //父ID,主要用于批量删除\n parentID: {\n type: String,\n default: ""\n }\n },\n data: function data() {\n return {\n sceneTypes: [{\n type: "enter",\n name: "我负责的"\n }, {\n type: "out",\n name: "我"\n }],\n sceneType: null,\n showScene: false,\n // 场景操作\n showFilter: false,\n // 控制筛选框\n fieldList: [],\n filterObj: {\n form: []\n },\n // 筛选确定数据\n sceneData: {\n id: "",\n bydata: "",\n name: ""\n },\n showSceneSet: false,\n // 展示场景设置\n showSceneCreate: false,\n // 展示场景添加\n sceneFilterObj: {\n form: []\n },\n // 筛选确定数据\n\n /** 勾选操作数据 */\n selectionList: [],\n transferDialogShow: false,\n teamsDialogShow: false,\n // 团队操作提示框\n teamsTitle: "",\n // 团队操作标题名\n allocDialogShow: false,\n // 公海分配操作提示框\n dealStatusShow: false,\n // 成交状态修改框\n crmTypes: {}\n };\n },\n computed: {},\n watch: {},\n mounted: function mounted() {},\n methods: {\n /** 发布 时候的类型选择 */\n handleTypeDrop: function handleTypeDrop(command) {\n this.sceneType = command;\n },\n\n /** 搜索全部 */\n getAllClick: function getAllClick() {\n //清空搜索条件\n this.filterObj = {\n form: []\n };\n this.$emit("filter", null);\n },\n\n /** 展示高级筛选 */\n showFilterClick: function showFilterClick() {\n this.getFilterFieldInfo();\n },\n // 获取高级筛选字段数据\n getFilterFieldInfo: function getFilterFieldInfo() {\n this.fieldList = tableFieldForSearch[this.crmType].data;\n this.showFilter = true;\n },\n handleFilter: function handleFilter(form) {\n var _this = this;\n\n this.showFilter = false;\n\n if (form === null) {\n this.$emit("filter", null);\n } else {\n this.filterObj = form;\n this.showFilter = false;\n\n if (form.saveChecked) {\n crmSceneSave({\n type: crmTypeModel["a" /* default */][this.crmType],\n isDefault: form.saveDefault ? 1 : 0,\n name: form.saveName,\n data: JSON.stringify(form.obj)\n }).then(function (res) {\n _this.updateSceneList();\n }).catch(function () {});\n }\n\n this.$emit("filter", form.obj); //this.$emit(\'filter\', form.form)\n }\n },\n //清空条件\n handleClearField: function handleClearField() {\n this.filterObj = tableFieldForSearch.obj;\n },\n // 场景操作\n\n /** 选择了场景 */\n sceneSelect: function sceneSelect(data) {\n this.sceneData = data;\n this.$emit("scene", data);\n },\n sceneHandle: function sceneHandle(data) {\n var _this2 = this;\n\n if (data.type == "set") {\n this.showSceneSet = true;\n } else if (data.type == "add") {\n Object(common["b" /* filterIndexfields */])({\n label: crmTypeModel["a" /* default */][this.crmType]\n }).then(function (res) {\n _this2.fieldList = res.data;\n _this2.showSceneCreate = true;\n }).catch(function () {});\n }\n },\n\n /** 创建保存成功 */\n updateSceneList: function updateSceneList() {\n this.$refs.sceneList.getSceneList();\n },\n\n /** 勾选后的表头操作 */\n headSelectionChange: function headSelectionChange(array) {\n this.selectionList = array;\n },\n\n /** 操作 */\n selectionBarClick: function selectionBarClick(type) {\n var _this3 = this;\n\n var message = "";\n\n if (type == "export") {\n message = "确定要导出这些数据嘛?";\n } else if (type == "delete") {\n message = "确定要删除这些数据嘛?";\n }\n\n this.$confirm(message, "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this3.confirmHandle(type);\n }).catch(function () {\n _this3.$message({\n type: "info",\n message: "已取消操作"\n });\n });\n },\n confirmHandle: function confirmHandle(type) {\n if (type === "export") {\n this.handleExport();\n }\n },\n handleExport: function handleExport() {\n var _this4 = this;\n\n var params = {};\n params["ids"] = this.selectionList.map(function (item) {\n return item[_this4.crmType + "Id"];\n }).join(",");\n params.__export = true;\n this.$emit("exportData", params);\n },\n deleteItemsCallBack: function deleteItemsCallBack() {\n this.$message({\n type: "success",\n message: "删除成功"\n });\n this.$emit("handle", {\n type: "delete"\n });\n },\n\n /** 获取展示items */\n getSelectionHandleItemsInfo: function getSelectionHandleItemsInfo() {\n var handleInfos = {\n export: {\n name: "导出选中",\n type: "export",\n icon: __webpack_require__("6f0b")\n },\n delete: {\n name: "批量删除",\n type: "delete",\n icon: __webpack_require__("34a3")\n }\n };\n return this.forSelectionHandleItems(handleInfos, ["export", "delete"]);\n },\n forSelectionHandleItems: function forSelectionHandleItems(handleInfos, array) {\n var tempsHandles = [];\n\n for (var index = 0; index < array.length; index++) {\n tempsHandles.push(handleInfos[array[index]]);\n }\n\n return tempsHandles;\n },\n // 判断是否展示\n whetherTypeShowByPermision: function whetherTypeShowByPermision(type) {\n if (type == "transfer") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transfer;\n } else if (type == "transform") {\n return this.sceneData.bydata == "transform" ? false : this.crm[this.crmType].transform;\n } else if (type == "export") {\n if (this.isSeas) {\n return this.crm.pool.excelexport;\n }\n\n return this.crm[this.crmType].excelexport;\n } else if (type == "delete") {\n return this.crm[this.crmType].delete;\n } else if (type == "put_seas") {\n // 放入公海(客户)\n return this.crm[this.crmType].putinpool;\n } else if (type == "lock" || type == "unlock") {\n // 锁定解锁(客户)\n return this.crm[this.crmType].lock && this.CRMConfig.customerConfig == 1;\n } else if (type == "add_user" || type == "delete_user") {\n // 添加 移除团队成员\n return this.crm[this.crmType].teamsave;\n } else if (type == "alloc") {\n // 分配(公海)\n return this.crm.pool.distribute;\n } else if (type == "get") {\n // 领取(公海)\n return this.crm.pool.receive;\n } else if (type == "start") {\n // 上架 下架(产品)\n for (var index = 0; index < this.selectionList.length; index++) {\n var element = this.selectionList[index];\n\n if (element.是否上下架 == "上架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "disable") {\n // 上架 下架(产品)\n for (var _index = 0; _index < this.selectionList.length; _index++) {\n var _element = this.selectionList[_index];\n\n if (_element.是否上下架 == "下架") {\n return false;\n }\n }\n\n return this.crm[this.crmType].status;\n } else if (type == "deal_status") {\n // 客户状态修改\n return this.crm[this.crmType].dealStatus;\n }\n\n return true;\n },\n // 子组件 回调的 结果\n handleCallBack: function handleCallBack(data) {\n this.$emit("handle", {\n type: data.type\n });\n },\n // 获取默认场景名字\n getDefaultSceneName: function getDefaultSceneName() {\n //add-场景\n this.crmTypes = crmTypes;\n var type = this.crmTypes[this.crmType];\n\n if (type === undefined) {\n return "全部" + this.crmType;\n } else {\n return "全部" + type.name;\n }\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=script&lang=js&\n /* harmony default export */ var components_CRMTableHeadvue_type_script_lang_js_ = (CRMTableHeadvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue?vue&type=style&index=0&id=a399b9bc&lang=scss&scoped=true&\nvar CRMTableHeadvue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true_ = __webpack_require__("fb51");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/components/CRMTableHead.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar CRMTableHead_component = Object(componentNormalizer["a" /* default */])(\n components_CRMTableHeadvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "a399b9bc",\n null\n \n)\n\n/* harmony default export */ var CRMTableHead = __webpack_exports__["a"] = (CRMTableHead_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT9iZTlkIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2luZGV4LnZ1ZT82OGE5Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/M2E5ZCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/OTg5OSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/MzFlNCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jZTY0Iiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9kMjU4Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnQudnVlPzIwNDUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL2ZpbHRlckZvcm0vZmlsdGVyQ29udGVudC52dWU/YjI5YiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT8yNzM3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlP2Y0YzIiLCJ3ZWJwYWNrOi8vL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVDcmVhdGUudnVlPzJiYjkiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZS52dWU/MDVhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9lYWFlIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lU2V0LnZ1ZT9kMDc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9zY2VuZUZvcm0vU2NlbmVTZXQudnVlP2NjNGUiLCJ3ZWJwYWNrOi8vLy4vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL3NjZW5lRm9ybS9TY2VuZVNldC52dWU/OTJhNiIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9jb21wb25lbnRzL0NSTVRhYmxlSGVhZC52dWU/YWRhMCIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT8xZTc3Iiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvY29tcG9uZW50cy9DUk1UYWJsZUhlYWQudnVlPzBmNjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQkFBMEIsYUFBYSwwQkFBMEIsd0JBQXdCLCtCQUErQixhQUFhLDBHQUEwRyw2QkFBNkIsWUFBWSxpQ0FBaUMseUNBQXlDLFNBQVMsTUFBTSxtQkFBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyw2QkFBNkIsWUFBWSxrQ0FBa0MsNkJBQTZCLHFDQUFxQyxPQUFPLDJIQUEySCxLQUFLLHdDQUF3QyxzQkFBc0IsMENBQTBDLHNCQUFzQiw0QkFBNEIsc0JBQXNCLE9BQU8seURBQXlELEtBQUssd0NBQXdDLHdCQUF3QiwwQ0FBMEMsd0JBQXdCLHFDQUFxQyxxQkFBcUIsT0FBTyxnSEFBZ0gsS0FBSyx3Q0FBd0MsMkJBQTJCLDBDQUEwQywyQkFBMkIsb0NBQW9DO0FBQzE0Qzs7Ozs7Ozs7Ozs7Ozs7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O0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkE7QUFZQSxPQWJBLE1BYUE7QUFDQSxnQkFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBREEsRUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSEEsRUFJQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBSkEsRUFLQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTEEsRUFNQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBTkEsRUFPQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUEEsRUFRQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBUkEsRUFTQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVEEsRUFVQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBVkEsRUFXQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWEEsRUFZQTtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBWkE7QUFjQTtBQUNBLEtBMUZBOztBQTJGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBL0ZBLHVCQStGQSxRQS9GQSxFQStGQTtBQUNBO0FBQ0E7QUFDQSxPQUZBOztBQUdBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsaUNBQ0Esa0NBRkEsRUFHQTtBQUNBO0FBQ0EsU0FMQSxNQUtBLElBQ0EsZ0NBQ0EsZ0NBREEsSUFFQSw0QkFIQSxFQUlBO0FBQ0E7QUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxPQVRBLE1BU0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQSxLQTNNQTtBQTRNQTtBQUNBLGtCQTdNQSwwQkE2TUEsSUE3TUEsRUE2TUE7QUFDQTtBQUFBO0FBQUE7QUFDQSxLQS9NQTtBQWdOQTtBQUNBLHVCQWpOQSxpQ0FpTkE7QUFDQTtBQUNBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBLE9BRkEsTUFFQTtBQUNBO0FBQ0E7QUFDQTtBQTFOQTtBQTNEQSxHOztBQ3ZEb1csQ0FBZ0Isd0hBQUcsRUFBQyxDOzs7OztBQ0FqUjtBQUN2QztBQUNMO0FBQ3NDOzs7QUFHakc7QUFDZ0c7QUFDaEcsSUFBSSxzQkFBUyxHQUFHLDhDQUFVO0FBQzFCLEVBQUUsK0NBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsa0dBQVMsUSIsImZpbGUiOiI4YmYwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2RpdicsW19jKCdmbGV4Ym94Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2VsZWN0aW9uTGlzdC5sZW5ndGggPT0gMCksZXhwcmVzc2lvbjpcInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIn1dLHN0YXRpY0NsYXNzOlwidGgtY29udGFpbmVyXCJ9LFtfYygnaW1nJyx7c3RhdGljQ2xhc3M6XCJjLWZpbHRyYXRlXCIsc3R5bGU6KHsgJ21hcmdpbi1sZWZ0JzogX3ZtLmlzU2VhcyA/IDAgOiAnMzBweCcgfSksYXR0cnM6e1wic3JjXCI6cmVxdWlyZShcIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiKX0sb246e1wiY2xpY2tcIjpfdm0uc2hvd0ZpbHRlckNsaWNrfX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbmRpdGlvbl90aXRsZVwiLG9uOntcImNsaWNrXCI6X3ZtLnNob3dGaWx0ZXJDbGlja319LFtfdm0uX3YoXCLpq5jnuqfnrZvpgIlcIildKSxfYygnZmlsdGVyLWZvcm0nLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImRpYWxvZy12aXNpYmxlXCI6X3ZtLnNob3dGaWx0ZXIsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwiY3JtLXR5cGVcIjpfdm0uY3JtVHlwZSxcImlzLXNlYXNcIjpfdm0uaXNTZWFzfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcInVwZGF0ZTpkaWFsb2ctdmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dGaWx0ZXI9JGV2ZW50fSxcImZpbHRlclwiOl92bS5oYW5kbGVGaWx0ZXJ9fSldLDEpLF9jKCdzY2VuZS1zZXQnLHthdHRyczp7XCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVTZXQsXCJjcm0tdHlwZVwiOl92bS5jcm1UeXBlfSxvbjp7XCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnNob3dTY2VuZVNldD0kZXZlbnR9LFwidXBkYXRlOmRpYWxvZy12aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lU2V0PSRldmVudH0sXCJzYXZlLXN1Y2Nlc3NcIjpfdm0udXBkYXRlU2NlbmVMaXN0fX0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93U2NlbmVDcmVhdGUsXCJvYmpcIjpfdm0uc2NlbmVGaWx0ZXJPYmp9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd1NjZW5lQ3JlYXRlPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93U2NlbmVDcmVhdGU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLnVwZGF0ZVNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImRpYWxvZ0RyYWdcIixyYXdOYW1lOlwidi1kaWFsb2dEcmFnXCJ9XSxhdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpcIumrmOe6p+etm+mAiVwiLFwid2lkdGhcIjpcIjkwMHB4XCIsXCJhcHBlbmQtdG8tYm9keVwiOnRydWV9LG9uOntcInVwZGF0ZTp2aXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0udmlzaWJsZT0kZXZlbnR9LFwiY2xvc2VcIjpfdm0uaGFuZGxlQ2FuY2VsfX0sW19jKCdkaXYnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tYm90dG9tXCI6XCIxMHB4XCJ9fSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2VsLWZvcm0nLHtzdGF0aWNDbGFzczpcImZpbHRlci1jb250YWluZXJcIixhdHRyczp7XCJpZFwiOlwiZmlsdGVyLWNvbnRhaW5lclwifX0sW19jKCdlbC1mb3JtLWl0ZW0nLFtfdm0uX2woKF92bS5mb3JtKSxmdW5jdGlvbihmb3JtSXRlbSxpbmRleCl7cmV0dXJuIFtfYygnZWwtcm93Jyx7a2V5OmluZGV4fSxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo4fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5maWVsZENoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmZpZWxkTmFtZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImZpZWxkTmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uZmllbGROYW1lXCJ9fSxfdm0uX2woKF92bS5maWVsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uZmllbGROYW1lLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmZpZWxkTmFtZX19KX0pLDEpXSwxKSwoX3ZtLnNob3dDYWxDb25kaXRpb24oZm9ybUl0ZW0uZm9ybVR5cGUpKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKF92bS5zaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKSk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5jb25kaXRpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJjb25kaXRpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmNvbmRpdGlvblwifX0sX3ZtLl9sKChfdm0uY2FsQ29uZGl0aW9uT3B0aW9ucyhcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW1cbiAgICAgICAgICAgICAgICApKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5sYWJlbCxcInZhbHVlXCI6aXRlbS52YWx1ZX19KX0pLDEpXSwxKTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSk6X3ZtLl9lKCksKGZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjo0fX0sW19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG9uOntcImNoYW5nZVwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS50eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSl9fSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnR5cGVJZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInR5cGVJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udHlwZUlkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnR5cGVPcHRpb24pLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udHlwZUlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnR5cGVJZH19KX0pLDEpXSwxKTpfdm0uX2UoKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjF9fSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjpmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fFxuICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XG4gICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnbWFwX2FkZHJlc3MnXG4gICAgICAgICAgICAgICAgPyAxM1xuICAgICAgICAgICAgICAgIDogOH19LFsoZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnKT9fYygnZWwtc3dpdGNoJyx7YXR0cnM6e1widmFsdWVcIjpmb3JtSXRlbS52YWx1ZX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJjbGVhcmFibGVcIjpcIlwiLFwicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uc3BsaXQoJywnKVsxXSxhdHRyczp7XCJsYWJlbFwiOml0ZW0uc3BsaXQoJywnKVswXSxcInZhbHVlXCI6aXRlbS5zcGxpdCgnLCcpWzFdfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnNldHRpbmcpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udmFsdWV9fSl9KSwxKTooXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyB8fFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXG4gICAgICAgICAgICAgICk/X2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wicGFkZGluZ1wiOlwiMHB4IDEwcHhcIn0sYXR0cnM6e1widmFsdWUtZm9ybWF0XCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xuICAgICAgICAgICAgICAgICAgPyAneXl5eS1NTS1kZCdcbiAgICAgICAgICAgICAgICAgIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnLFwidHlwZVwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAnZGF0ZXJhbmdlJyA6ICdkYXRldGltZXJhbmdlJyxcInJhbmdlLXNlcGFyYXRvclwiOlwiLVwiLFwic3RhcnQtcGxhY2Vob2xkZXJcIjpcIuW8gOWni+aXpeacn1wiLFwiZW5kLXBsYWNlaG9sZGVyXCI6XCLnu5PmnZ/ml6XmnJ9cIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0pOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqVwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnN0YXR1c0lkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwic3RhdHVzSWRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnN0YXR1c0lkXCJ9fSxfdm0uX2woKGZvcm1JdGVtLnN0YXR1c09wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS5zdGF0dXNJZCxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5zdGF0dXNJZH19KX0pLDEpOihcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiZcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcbiAgICAgICAgICAgICAgKT9fYygnY3JtLXJlbGF0aXZlLWNlbGwnLHtyZWY6XCJDcm1SZWxhdGl2ZUNlbGxcIixyZWZJbkZvcjp0cnVlLGF0dHJzOntcIml0ZW1cIjpmb3JtSXRlbSxcInJlbGF0aW9uXCI6eyB0eXBlOiBmb3JtSXRlbS5mb3JtVHlwZSB9LFwicmFkaW9cIjpmYWxzZSxcImRpc2FibGVkXCI6Zm9ybUl0ZW0uZGlzYWJsZWR9LG9uOntcInZhbHVlLWNoYW5nZVwiOl92bS52YWx1ZUNoYW5nZX19KTpfYygnZWwtaW5wdXQnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udmFsdWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJ2YWx1ZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0udmFsdWVcIn19KV0sMSksX2MoJ2VsLWNvbCcse3N0YXRpY0NsYXNzOlwiZGVsZXRlXCIsYXR0cnM6e1wic3BhblwiOjF9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tZXJyb3IgZGVsZXRlLWJ0blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpbmRleCl9fX0pXSldLDEpXX0pXSwyKV0sMSksX2MoJ3AnLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS5zaG93RXJyb3JzKSxleHByZXNzaW9uOlwic2hvd0Vycm9yc1wifV0sc3RhdGljQ2xhc3M6XCJlbC1pY29uLXdhcm5pbmcgd2FybmluZy1pbmZvXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiZGVzY1wifSxbX3ZtLl92KFwi562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBXCIpXSldKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwidGV4dFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVBZGR9fSxbX3ZtLl92KFwiKyDmt7vliqDnrZvpgInmnaHku7ZcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJkaWFsb2ctZm9vdGVyXCIsYXR0cnM6e1wic2xvdFwiOlwiZm9vdGVyXCJ9LHNsb3Q6XCJmb290ZXJcIn0sW19jKCdlbC1idXR0b24nLHtvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVDYW5jZWx9fSxbX3ZtLl92KFwi5Y+WIOa2iFwiKV0pLF9jKCdlbC1idXR0b24nLHthdHRyczp7XCJ0eXBlXCI6XCJwcmltYXJ5XCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNvbmZpcm19fSxbX3ZtLl92KFwi56GuIOWumlwiKV0pXSwxKV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cclxuICA8ZWwtZGlhbG9nXHJcbiAgICB2LWRpYWxvZ0RyYWdcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDpjbG9zZS1vbi1jbGljay1tb2RhbD1cImZhbHNlXCJcclxuICAgIHRpdGxlPVwi6auY57qn562b6YCJXCJcclxuICAgIHdpZHRoPVwiOTAwcHhcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIlxyXG4gID5cclxuICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxMHB4XCI+562b6YCJ5p2h5Lu2PC9kaXY+XHJcbiAgICA8ZWwtZm9ybSBpZD1cImZpbHRlci1jb250YWluZXJcIiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGVsLWZvcm0taXRlbT5cclxuICAgICAgICA8dGVtcGxhdGUgdi1mb3I9XCIoZm9ybUl0ZW0sIGluZGV4KSBpbiBmb3JtXCI+XHJcbiAgICAgICAgICA8ZWwtcm93IDprZXk9XCJpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nopoHnrZvpgInnmoTlrZfmrrXlkI1cIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cImZpZWxkQ2hhbmdlKGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZmllbGRMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5maWVsZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIHYtaWY9XCJzaG93Q2FsQ29uZGl0aW9uKGZvcm1JdGVtLmZvcm1UeXBlKVwiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwic2hvd0NhbENvbmRpdGlvbihmb3JtSXRlbS5mb3JtVHlwZSlcIiA6c3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uY29uZGl0aW9uXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup562b6YCJ5pa55rOVXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBjYWxDb25kaXRpb25PcHRpb25zKFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtXHJcbiAgICAgICAgICAgICAgICAgIClcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJ1wiIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgPiZuYnNwOzwvZWwtY29sXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLWNvbCB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCIgOnNwYW49XCI0XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgICAgICBAY2hhbmdlPVwidHlwZU9wdGlvbnNDaGFuZ2UoZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS50eXBlT3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgOmtleT1cIml0ZW0udHlwZUlkXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcblxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMVwiPiZuYnNwOzwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sXHJcbiAgICAgICAgICAgICAgOnNwYW49XCJcclxuICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1xyXG4gICAgICAgICAgICAgICAgICA/IDEzXHJcbiAgICAgICAgICAgICAgICAgIDogOFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZWwtc3dpdGNoXHJcbiAgICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdzd2l0Y2gnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvZWwtc3dpdGNoPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLnNwbGl0KCcsJylbMF1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnNwbGl0KCcsJylbMV1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJ1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnIHx8XHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gJ3l5eXktTU0tZGQnXHJcbiAgICAgICAgICAgICAgICAgICAgOiAneXl5eS1NTS1kZCBISDptbTpzcydcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6dHlwZT1cIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ2RhdGVyYW5nZScgOiAnZGF0ZXRpbWVyYW5nZSdcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDBweCAxMHB4XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuXHJcbiAgICAgICAgICAgICAgPGNybS1yZWxhdGl2ZS1jZWxsXHJcbiAgICAgICAgICAgICAgICByZWY9XCJDcm1SZWxhdGl2ZUNlbGxcIlxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9ICd0ZXh0JyAmJlxyXG4gICAgICAgICAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJylcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCJcclxuICAgICAgICAgICAgICAgIDpyZWxhdGlvbj1cInsgdHlwZTogZm9ybUl0ZW0uZm9ybVR5cGUgfVwiXHJcbiAgICAgICAgICAgICAgICA6cmFkaW89XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmb3JtSXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwidmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgICAgICAgICAgdi1lbHNlXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXnrZvpgInmnaHku7ZcIlxyXG4gICAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3RleHQnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeetm+mAieadoeS7tlwiLz4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8eGgtdXNlci1jZWxsXHJcbiAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgOmluZm8tcGFyYW1zPVwie21cdDonY3JtJyxjOiBjcm1UeXBlLGE6ICdpbmRleCcgfVwiXHJcbiAgICAgICAgICAgICAgICBAdmFsdWUtY2hhbmdlPVwiYXJyYXlWYWx1ZUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8eGgtcHJvdWN0LWNhdGVcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknXCJcclxuICAgICAgICAgICAgICAgIDppdGVtPVwiZm9ybUl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cImFycmF5VmFsdWVDaGFuZ2VcIi8+XHJcbiAgICAgICAgICAgICAgPHYtZGlzdHBpY2tlclxyXG4gICAgICAgICAgICAgICAgdi1lbHNlLWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdtYXBfYWRkcmVzcydcIlxyXG4gICAgICAgICAgICAgICAgOnByb3ZpbmNlPVwiZm9ybUl0ZW0uYWRkcmVzcy5zdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICA6Y2l0eT1cImZvcm1JdGVtLmFkZHJlc3MuY2l0eVwiXHJcbiAgICAgICAgICAgICAgICA6YXJlYT1cImZvcm1JdGVtLmFkZHJlc3MuYXJlYVwiXHJcbiAgICAgICAgICAgICAgICBAcHJvdmluY2U9XCJzZWxlY3RQcm92aW5jZSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBjaXR5PVwic2VsZWN0Q2l0eSgkZXZlbnQsZm9ybUl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIEBhcmVhPVwic2VsZWN0QXJlYSgkZXZlbnQsZm9ybUl0ZW0pXCIvPiAtLT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCIgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwIHYtc2hvdz1cInNob3dFcnJvcnNcIiBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8IS0tIDxkaXZcclxuICAgICAgdi1pZj1cIiFpc1NlYXNcIlxyXG4gICAgICBjbGFzcz1cInNhdmVcIj5cclxuICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlQ2hlY2tlZFwiPuS/neWtmOS4uuWcuuaZrzwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDxlbC1pbnB1dFxyXG4gICAgICAgIHYtc2hvdz1cInNhdmVDaGVja2VkXCJcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cIm5hbWVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5Zy65pmv5ZCN56ew77yM5pyA5aSaMTDkuKrlrZfnrKZcIi8+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICB2LXNob3c9XCJzYXZlQ2hlY2tlZFwiXHJcbiAgICAgICAgY2xhc3M9XCJzYXZlLXNldHRpbmdcIj5cclxuICAgICAgICA8ZWwtY2hlY2tib3ggdi1tb2RlbD1cInNhdmVEZWZhdWx0XCI+6K6+572u5Li66buY6K6kPC9lbC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IHNsb3Q9XCJmb290ZXJcIiBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJoYW5kbGVDb25maXJtXCI+56GuIOWumjwvZWwtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgeyBvYmpEZWVwQ29weSB9IGZyb20gXCJAL3V0aWxzXCI7XHJcbmltcG9ydCB7IENybVJlbGF0aXZlQ2VsbCB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ3JlYXRlQ29tXCI7XHJcbi8vIGltcG9ydCB7IFhoVXNlckNlbGwsIFhoUHJvdWN0Q2F0ZSB9IGZyb20gJ0AvY29tcG9uZW50cy9DcmVhdGVDb20nXHJcbi8vIGltcG9ydCBWRGlzdHBpY2tlciBmcm9tICd2LWRpc3RwaWNrZXInXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwiSW5kZXhcIixcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBcImNybS1yZWxhdGl2ZS1jZWxsXCI6IENybVJlbGF0aXZlQ2VsbCxcclxuICAgIC8vIFhoVXNlckNlbGwsXHJcbiAgICAvLyBYaFByb3VjdENhdGUsXHJcbiAgICAvLyBWRGlzdHBpY2tlclxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgLyoqIOiOt+WPluWuouaIt+euoeeQhuS4i+WIl+ihqOadg+mZkOWGheeahOWRmOW3peWIl+ihqCDpkojlr7kgdXNlcnNMaXN0ICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgICAvLyDovoXliqkg5L2/55SoIOWFrOa1t+ayoeacieWcuuaZr1xyXG4gICAgaXNTZWFzOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIHNob3dFcnJvcnM6IGZhbHNlLFxyXG4gICAgICBzYXZlQ2hlY2tlZDogZmFsc2UsIC8vIOWxleekuuWcuuaZr1xyXG4gICAgICBzYXZlRGVmYXVsdDogZmFsc2UsIC8vIOiuvue9ruS4uum7mOiupOWcuuaZr1xyXG4gICAgICBzYXZlTmFtZTogbnVsbCwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9O1xyXG4gIH0sXHJcbiAgd2F0Y2g6IHtcclxuICAgIGRpYWxvZ1Zpc2libGU6IHtcclxuICAgICAgaGFuZGxlcih2YWwpIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSBvYmpEZWVwQ29weSh0aGlzLm9iai5mb3JtKTtcclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLnB1c2goe1xyXG4gICAgICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgICAgICBjb25kaXRpb246IFwiaXNcIixcclxuICAgICAgICAgICAgICBhY3Rpb246IDAsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICAgICAgZGlzcGxhZFZhbHVlOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIHN0YXR1c0lkOiBcIlwiLFxyXG4gICAgICAgICAgICAgIGFkZHJlc3M6IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgY2l0eTogXCJcIixcclxuICAgICAgICAgICAgICAgIGFyZWE6IFwiXCIsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnNhdmVDaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNhdmVOYW1lID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWVwOiB0cnVlLFxyXG4gICAgICBpbW1lZGlhdGU6IHRydWUsXHJcbiAgICB9LFxyXG5cclxuICAgIGZvcm0oKSB7XHJcbiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHtcclxuICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmaWx0ZXItY29udGFpbmVyXCIpO1xyXG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUb3AgPSBjb250YWluZXIuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOS9jee9ruabtOaUuVxyXG4gICAgICovXHJcbiAgICBzZWxlY3RQcm92aW5jZShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLnN0YXRlID0gZGF0YS52YWx1ZTtcclxuICAgIH0sXHJcbiAgICBzZWxlY3RDaXR5KGRhdGEsIGZvcm1JdGVtKSB7XHJcbiAgICAgIGZvcm1JdGVtLmFkZHJlc3MuY2l0eSA9IGRhdGEudmFsdWU7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0QXJlYShkYXRhLCBmb3JtSXRlbSkge1xyXG4gICAgICBmb3JtSXRlbS5hZGRyZXNzLmFyZWEgPSBkYXRhLnZhbHVlO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIOWVhuacuue7hOeKtuaAgVxyXG4gICAgICovXHJcbiAgICB0eXBlT3B0aW9uc0NoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBpZiAoZm9ybUl0ZW0udHlwZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgb2JqID0gZm9ybUl0ZW0udHlwZU9wdGlvbi5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBvYmouc3RhdHVzTGlzdCB8fCBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtSXRlbS5zdGF0dXNJZCA9IFwiXCI7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnlKjmiLfliJvlu7rkurpcclxuICAgICAqIOS6p+WTgeexu+WIq1xyXG4gICAgICovXHJcbiAgICBhcnJheVZhbHVlQ2hhbmdlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IGRhdGEudmFsdWU7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlQ29udGVudCA9IGRhdGEudmFsdWVDb250ZW50O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5piv5ZCm5bGV56S65p2h5Lu2XHJcbiAgICAgKi9cclxuICAgIHNob3dDYWxDb25kaXRpb24oZm9ybVR5cGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwiZGF0ZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJkYXRldGltZVwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJidXNpbmVzc190eXBlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcImNhdGVnb3J5XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcIm1hcF9hZGRyZXNzXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSxcclxuICAgIC8qKiDmnaHku7bmlbDmja7mupAgKi9cclxuICAgIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybVR5cGUsIGl0ZW0pIHtcclxuICAgICAgLy9ib29sIOaIluiAhSDmnprkuL7nsbvlnotcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwic2VsZWN0XCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInN3aXRjaFwiIHx8XHJcbiAgICAgICAgZm9ybVR5cGUgPT0gXCJjaGVja2JveFwiXHJcbiAgICAgICAgLy8gfHxmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICAvLyBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IGFjdGlvbjogMCwgdmFsdWU6IFwiaXNcIiwgbGFiZWw6IFwi562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyBhY3Rpb246IDEsIHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8v5a2X56ym5Liy57G75Z6LXHJcbiAgICAgIGVsc2UgaWYgKFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwibW9kdWxlXCIgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSBcInRleHRcIiB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09IFwidGV4dGFyZWFcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyBhY3Rpb246IDAsIHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgYWN0aW9uOiAxLCB2YWx1ZTogXCJpc05vdFwiLCBsYWJlbDogXCLkuI3nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImNvbnRhaW5zXCIsIGxhYmVsOiBcIuWMheWQq1wiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwibm90Q29udGFpbnNcIiwgbGFiZWw6IFwi5LiN5YyF5ZCrXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgICAgLy/mlbDlgLznsbvlnotcclxuICAgICAgZWxzZSBpZiAoZm9ybVR5cGUgPT0gXCJmbG9hdG51bWJlclwiIHx8IGZvcm1UeXBlID09IFwibnVtYmVyXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJpc1wiLCBsYWJlbDogXCLnrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzTm90XCIsIGxhYmVsOiBcIuS4jeetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiZ3RcIiwgbGFiZWw6IFwi5aSn5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlZ3RcIiwgbGFiZWw6IFwi5aSn5LqO562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJsdFwiLCBsYWJlbDogXCLlsI/kuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImVsdFwiLCBsYWJlbDogXCLlsI/kuo7nrYnkuo5cIiwgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtVHlwZSA9PSBcImRhdGV0aW1lXCIpIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogXCJzdGFydFdpdGhcIiwgbGFiZWw6IFwi5byA5aeL5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogXCJlbmRXaXRoXCIsIGxhYmVsOiBcIue7k+adn+S6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGVsc2UgaWYgKGZvcm1UeXBlID09ICdjYXRlZ29yeScpIHtcclxuICAgICAgLy8gICByZXR1cm4gW1xyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgLy8gICAgIHsgdmFsdWU6ICdpc25vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgIC8vICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAvLyAgICAgeyB2YWx1ZTogJ25vdF9jb250YWluJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAvLyAgIF1cclxuICAgICAgLy8gfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAvL+m7mOiupOafpeivouadoeS7tlxyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiBcImlzXCIsIGxhYmVsOiBcIuetieS6jlwiLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6IFwiaXNOb3RcIiwgbGFiZWw6IFwi5LiN562J5LqOXCIsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnc3RhcnRXaXRoJywgbGFiZWw6ICflvIDlp4vkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdlbmRXaXRoJywgbGFiZWw6ICfnu5PmnZ/kuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIC8vIHsgdmFsdWU6ICdpc051bGwnLCBsYWJlbDogJ+S4uuepuicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2lzTm90TnVsbCcsIGxhYmVsOiAn5LiN5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnZ3QnLCBsYWJlbDogJ+Wkp+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VndCcsIGxhYmVsOiAn5aSn5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICAvLyB7IHZhbHVlOiAnbHQnLCBsYWJlbDogJ+Wwj+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgLy8geyB2YWx1ZTogJ2VsdCcsIGxhYmVsOiAn5bCP5LqO562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3pgInmi6nnmoTlrZfmrrXlkI3mlLnlj5jvvIzliKTmlq3mmK/lkKbmnInph43lpI1cclxuICAgICAqIEBwYXJhbSBmb3JtSXRlbVxyXG4gICAgICovXHJcbiAgICBmaWVsZENoYW5nZShmb3JtSXRlbSkge1xyXG4gICAgICBjb25zdCBvYmogPSB0aGlzLmZpZWxkTGlzdC5maW5kKChpdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBmb3JtSXRlbS5maWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGU7XHJcbiAgICAgICAgZm9ybUl0ZW0ubmFtZSA9IG9iai5uYW1lO1xyXG4gICAgICAgIGlmIChmb3JtSXRlbS5mb3JtVHlwZSA9PT0gXCJkYXRlXCIgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBbXTtcclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm1JdGVtLmZvcm1UeXBlID09IFwic2VsZWN0XCIpIHtcclxuICAgICAgICAgIGZvcm1JdGVtLnNldHRpbmcgPSBvYmouc2V0dGluZyB8fCBbXTtcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlICE9IFwidGV4dFwiICYmXHJcbiAgICAgICAgICBmb3JtSXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoXCJJRFwiKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy/muIXnqbrlhoXlrrlcclxuICAgICAgICAgIGZvcm1JdGVtLnZhbHVlID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuZm9ybS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZTtcclxuICAgICAgZWxzZSB0aGlzLnNob3dFcnJvcnMgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICBhY3Rpb25DaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgc3dpdGNoIChmb3JtSXRlbS5jb25kaXRpb24pIHtcclxuICAgICAgICBjYXNlIFwiaXNcIjogLy8g562J5LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSAwO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImlzTm90XCI6IC8vIOS4jeetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJndFwiOiAvL+Wkp+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMjtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJsdFwiOiAvL+Wwj+S6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gMztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWd0XCIsIFwic3RhcnRXaXRoXCIpOiAvL+Wkp+S6juetieS6jlxyXG4gICAgICAgICAgZm9ybUl0ZW0uYWN0aW9uID0gNDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgKFwiZWx0XCIsIFwiZW5kV2l0aFwiKTogLy/lsI/kuo7nrYnkuo5cclxuICAgICAgICAgIGZvcm1JdGVtLmFjdGlvbiA9IDU7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiY29udGFpbnNcIjogLy8g57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA2O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIm5vdENvbnRhaW5zXCI6IC8v5LiN57G75Ly85LqOXHJcbiAgICAgICAgICBmb3JtSXRlbS5hY3Rpb24gPSA3O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcclxuICAgICAgdmFyIGZvcm1JdGVtID0gdGhpcy5mb3JtLmZpbmQoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5mb3JtVHlwZSA9PT0gdHlwZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtSXRlbSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXSAhPSBudWxsICYmXHJcbiAgICAgICAgZGF0YS52YWx1ZVswXVtcIklkXCJdICE9IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0udmFsdWUgPSBkYXRhLnZhbHVlWzBdW1wiSWRcIl07XHJcbiAgICAgICAgZm9ybUl0ZW0uZGlzcGxhZFZhbHVlID0gZGF0YS52YWx1ZVswXVtcIk5hbWVcIl07XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJ1cGRhdGU6ZGlhbG9nVmlzaWJsZVwiLCBmYWxzZSk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDnoa7lrprpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ29uZmlybSgpIHtcclxuICAgICAgaWYgKHRoaXMuc2hvd0Vycm9ycykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNhdmVDaGVja2VkKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNhdmVOYW1lIHx8IHRoaXMuc2F2ZU5hbWUgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoXCLlnLrmma/lkI3np7DkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mb3JtLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgY29uc3QgbyA9IHRoaXMuZm9ybVtpXTtcclxuICAgICAgICBpZiAoIW8uZmllbGROYW1lIHx8IG8uZmllbGROYW1lID09PSBcIlwiKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoby5mb3JtVHlwZSA9PSBcImRhdGVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIikge1xyXG4gICAgICAgICAgICBpZiAoIW8udmFsdWUgfHwgby52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICAgIGlmICghby52YWx1ZSAmJiBvLnZhbHVlICE9PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcihcIuivt+i+k+WFpeetm+mAieadoeS7tueahOWAvO+8gVwiKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8v5YWz6IGU6KGoXHJcbiAgICAgICAgICBlbHNlIGlmIChvLmZvcm1UeXBlICE9IFwidGV4dFwiICYmIG8uZmllbGROYW1lLmVuZHNXaXRoKFwiSURcIikpIHtcclxuICAgICAgICAgICAgaWYgKCFvLnZhbHVlICYmIG8udmFsdWUgIT09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKFwi6K+36YCJ5oup562b6YCJ5p2h5Lu255qE5YC877yBXCIpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKChvKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09IFwidGV4dFwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHZhbHVlOiBvLnZhbHVlLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgZmllbGROYW1lOiBvLmZpZWxkTmFtZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIGlmIChvLmZvcm1UeXBlID09IFwiZGF0ZXRpbWVcIiB8fCBvLmZvcm1UeXBlID09IFwiZGF0ZVwiKSB7XHJcbiAgICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICAgIGNvbmRpdGlvbjogby5jb25kaXRpb24sXHJcbiAgICAgICAgICAgIGFjdGlvbjogby5hY3Rpb24sXHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gXCJzZWxlY3RcIikge1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIGZpZWxkTmFtZTogby5maWVsZE5hbWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSBcInN3aXRjaFwiKSB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvLnZhbHVlID09PSBmYWxzZSA/IFwiZmFsc2VcIiA6IFwidHJ1ZVwiOyAvL28udmFsdWXpu5jorqTnrYnkuo4nJ1xyXG4gICAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICBhY3Rpb246IG8uYWN0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy/lhbPogZTooahcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9iaiA9IHtcclxuICAgICAgICAgICAgY29uZGl0aW9uOiBvLmNvbmRpdGlvbixcclxuICAgICAgICAgICAgYWN0aW9uOiBvLmFjdGlvbixcclxuICAgICAgICAgICAgdmFsdWU6IG8udmFsdWUsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBmaWVsZE5hbWU6IG8uZmllbGROYW1lLFxyXG4gICAgICAgICAgICBkaXNwbGFkVmFsdWU6IG8uZGlzcGxhZFZhbHVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaXRlbXMucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICBvYmo6IGl0ZW1zLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlQ2hlY2tlZDogdGhpcy5zYXZlQ2hlY2tlZCxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZSxcclxuICAgICAgfTtcclxuICAgICAgZGF0YS5vYmogPSBpdGVtcztcclxuICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBkYXRhKTtcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOetm+mAieadoeS7tlxyXG4gICAgICovXHJcbiAgICBoYW5kbGVBZGQoKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpZWxkTmFtZTogXCJcIixcclxuICAgICAgICAgIGZvcm1UeXBlOiBcInRleHRcIixcclxuICAgICAgICAgIGNvbmRpdGlvbjogXCJpc1wiLFxyXG4gICAgICAgICAgYWN0aW9uOiAwLFxyXG4gICAgICAgICAgdmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBkaXNwbGFkVmFsdWU6IFwiXCIsXHJcbiAgICAgICAgICBmb3JtVHlwZTogXCJcIixcclxuICAgICAgICAgIHNldHRpbmc6IFtdLFxyXG4gICAgICAgICAgdHlwZU9wdGlvbjogW10sXHJcbiAgICAgICAgICBzdGF0dXNPcHRpb246IFtdLFxyXG4gICAgICAgICAgdHlwZUlkOiBcIlwiLFxyXG4gICAgICAgICAgc3RhdHVzSWQ6IFwiXCIsXHJcbiAgICAgICAgICBkYXRhOiBbXSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTnrZvpgInmnaHku7ZcclxuICAgICAqIEBwYXJhbSBpbmRleFxyXG4gICAgICovXHJcbiAgICBoYW5kbGVEZWxldGUoaW5kZXgpIHtcclxuICAgICAgdGhpcy4kY29uZmlybShcIuaCqOehruWumuimgeWIoOmZpOi/meS4gOadoeaVsOaNruWQlz9cIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uZm9yRWFjaCgoaXRlbUZvcm0pID0+IHtcclxuICAgICAgICAgICAgLy/nlKjkuo7liKTmlq3mmK/lkKbmnInph43lpI3poblcclxuICAgICAgICAgICAgLy90aGlzLmZpZWxkQ2hhbmdlKGl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZmllbGROYW1lID09PSBpdGVtRm9ybS5maWVsZE5hbWU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoYXJyLmxlbmd0aCA+IDEpIHRoaXMuc2hvd0Vycm9ycyA9IHRydWU7XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5zaG93RXJyb3JzID0gZmFsc2U7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5Yig6ZmkXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbi9kZWVwLyAuZWwtZGlhbG9nX19ib2R5IHtcclxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbn1cclxuXHJcbi9kZWVwLyAuZWwtZm9ybS1pdGVtX19sYWJlbCB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG4uZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgbWF4LWhlaWdodDogMzAwcHg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxufVxyXG5cclxuLnNhdmUge1xyXG4gIG1hcmdpbi10b3A6IDEwcHg7XHJcbiAgLm5hbWUge1xyXG4gICAgd2lkdGg6IDMwMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgIGhlaWdodDogMzJweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNhdmUtc2V0dGluZyB7XHJcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmVsLWZvcm0taXRlbSB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLmVsLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAuZGVsZXRlLWJ0biB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTVweDtcclxuICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIH1cclxuICAuZWwtc2VsZWN0LFxyXG4gIC5lbC1kYXRlLWVkaXRvciB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbn1cclxuXHJcbi53YXJuaW5nLWluZm8ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGZvbnQtc2l6ZTogMTRweDtcclxuICBjb2xvcjogI2Y1NmM2YztcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gIC5kZXNjIHtcclxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xyXG4gIH1cclxufVxyXG5cclxuLmRpc3RwaWNrZXItYWRkcmVzcy13cmFwcGVyIC9kZWVwLyBzZWxlY3Qge1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiAzNHB4O1xyXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcclxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBc0FBQUFXQ0FZQUFBQVc1R1pqQUFBTUhtbERRMUJFYVhOd2JHRjVBQUJJeDYyWGQxUlR5UnJBNTVZa0pDUzBRQVNraE40RTZWVjZqVlNwZ28yUUJCSktEQWxCeEk0dUtyZ1dWQ3hZa1ZVUjIxb0FXV3pZbFVXdzkwVVJGR1ZkTE5oQWVaTUUwTlh6L25qbnZEbG43djNsbTIrK2xybHpaZ0JRaldHTFJObW9HZ0E1d2p4eGJHZ0FjMkp5Q3BQMEJCQ0JHaUFEWGFESzVraEUvakV4RVFDMjRmZS8yL3RiQUpHOXI5dktiSUgvcmFsemVSSU9BRWdNNURTdWhKTUQrUWdBdUN0SEpNNERnTkFENVNZejhrU1FpVEJLb0NtR0FVSTJsWEdHZ3QxbG5LYmdDTGxPZkd3ZzVGUUFsS2hzdGpnREFCVlpYTXg4VGdhMG83SU1zcjJRS3hCQ2JvVHN3K0d6dVpBSElJL0p5WmtPV2RVU3NtWGFkM1l5L21VemJjUW1tNTB4d29wYzVFMHBTQ0FSWmJObmd2OTN5OG1XRHZzd2daM0tGNGZGeW5LVzFTMXJlcmlNcVpBdkN0T2lvaUZyUUw0aDRNcjFaZHpGbDRZbERPbC81RWdDWWMwQUF3Q1V5bVVIaFVQV2cyd3N6STZLR0pMN3BBdENXSkJoN2RGNFFSNHJYakVYNVlxbnh3N1pSd3Q0a3VDNFlXYUw1YjVrT2lYU3JBVC9JWnRiK0R6V3NNMkdRbjU4a2lKT3REVmZrQmdGV1FYeUEwbFdYUGlRem90Q2ZtRFVzSTVZR2l1TEdmN25HRWdYaDhRcWRERFRITWx3WHBnblg4Q0tHdUtJUEg1OG1HSXVOcFhEbHNlbURUbVRKNWtZTVJ3bmx4Y1VyTWdMSytJSkU0Yml4OHBFZVFHeFEvcFZvdXlZSVgyc2taY2RLcE1iUTI2UjVNY056KzNOZzR0TmtTOE9SSGt4OFlyWWNNMU05dmdZUlF5NE5ZZ0FnU0FJTUlFVTlqUXdIV1FDUVV0UFhRLzhwUmdKQVd3Z0JobUFCMnlISk1Nemt1UWpRdmlNQTRYZ2IwZzhJQm1aRnlBZjVZRjhLUDh5SWxVOGJVRzZmRFJmUGlNTGRFSE9BZUVnRy82V3ltY0pSN3dsZ3FkUUl2akpPd2ZHbWcyN2JPd25HVk4xV0VZTUpnWVJ3NGdoUkN0Y0YvZkJ2ZkFJK1BTRDNSRjN4ejJHNC9xbVQrZ2l0QkdlRUc0UzJnbDNwd21LeEQ5RXpnU1JvQjNHR0RLVVhkcjMyZUhtMEtvTEhvQjdRL3ZRTnM3QWRZRXQ3Z3c5K2VPKzBMY0xsSDRmcTNRazQyKzFITEpGdGllajVGRmtQN0xsanhHb1dLdTRqRmlSVmVyN1dpamlTaHVwVnVESXlJOTVCSDVYUHk1OGgvK29pUzNCRG1NWHNOUFlKYXdScXdOTTdDUldqelZqeDJVOHNqYWV5dGZHc0xkWWVUeFowSTdnSjMvc0laK3lxa25zYSt5NzdRZUd4a0FlcnlCUDlyRUVUaGZORkFzeStIbE1mN2hiODVnc0ljZHVETlBSM2dIdW9ySzlYN0cxdkdYSTkzU0VjZm1iTFBjVUFCNGxVSmp4VGNhR2U5Q3hMZ0RvNzcvSlRON0FaYjhTZ09PdEhLazRYeUhEWlE4Q29BQlYrS1hvQUFPNGQxbkNqQnlCSy9BQ2ZpQVlqQWZSSUI0a2c2bXd6bnk0VHNWZ0JwZ05Gb0JpVUFwV2dyVmdJOWdLZG9EZFlCODRCT3BBSXpnTnpvTXJvQlhjQlBmaFd1a0VMMEV2ZUEvNkVRUWhJVFNFanVnZ2hvZ1pZb000SXU2SUR4S01SQ0N4U0RLU2ltUWdRa1NLekVZV0lxVklHYklSMlk1VUk3OGp4NURUeUNXa0RibUxQRWE2a1RmSVp4UkRxYWdtcW8rYW8yTlJkOVFmRFVmajBTbG9CcHFMRnFLTDBPWG9lclFTM1l2V29xZlJLK2hOdEIxOWlmWmhBRlBHR0pnUlpvdTVZNEZZTkphQ3BXTmliQzVXZ3BWamxkaCtyQUgrMDlleGRxd0grNFFUY1RyT3hHM2hlZzNERTNBT25vdlB4WmZoRy9IZGVDMStGcitPUDhaNzhhOEVHa0dQWUVQd0pMQUlFd2taaEJtRVlrSTVZU2ZoS09FYy9IWTZDZStKUkNLRGFFRjBnOTllTWpHVE9JdTRqTGlaZUlCNGl0aEc3Q0Qya1Vna0haSU55WnNVVFdLVDhrakZwQTJrdmFTVHBHdWtUdEpISldVbFF5VkhwUkNsRkNXaFVwRlN1ZEllcFJOSzE1U2VLZldUMWNobVpFOXlOSmxMbmtsZVFhNGlONUN2a2p2Si9SUjFpZ1hGbXhKUHlhUXNvS3luN0tlY296eWd2RlZXVmpaVzlsQ2VvQ3hRbnErOFh2bWc4a1hseDhxZnFCcFVhMm9nZFRKVlNsMU8zVVU5UmIxTGZVdWowY3hwZnJRVVdoNXRPYTJhZG9iMmlQWlJoYTVpcDhKUzRhck1VNmxRcVZXNXB2SktsYXhxcHVxdk9sVzFVTFZjOWJEcVZkVWVOYkthdVZxZ0dsdHRybHFGMmpHMTIycDk2blIxQi9WbzlSejFaZXA3MUMrcFA5Y2dhWmhyQkd0d05SWnA3TkE0bzlGQngrZ205RUE2aDc2UVhrVS9SKy9VSkdwYWFMSTBNelZMTmZkcHRtajJhbWxvT1dzbGFoVm9WV2dkMTJwbllBeHpCb3VSelZqQk9NUzR4Zmc4U24rVS95amVxS1dqOW8rNk51cUQ5bWh0UDIyZWRvbjJBZTJiMnA5MW1EckJPbGs2cTNUcWRCN3E0cnJXdWhOMForaHUwVDJuMnpOYWM3VFhhTTdva3RHSFJ0L1RRL1dzOVdMMVp1bnQwR3ZXNjlNMzBBL1ZGK2x2MEQrajMyUEFNUEF6eURSWVkzRENvTnVRYnVoaktEQmNZM2pTOEFWVGkrblB6R2F1WjU1bDlocnBHWVVaU1kyMkc3VVk5UnRiR0NjWUZ4a2ZNSDVvUWpGeE4wazNXV1BTWk5KcmFtZ2FhVHJidE1iMG5oblp6TjJNYjdiTzdJTFpCM01MOHlUenhlWjE1czh0dEMxWUZvVVdOUllQTEdtV3ZwYTVscFdXTjZ5SVZ1NVdXVmFiclZxdFVXc1hhNzUxaGZWVkc5VEcxVVpnczltbWJReGhqTWNZNFpqS01iZHRxYmIrdHZtMk5iYVA3UmgyRVhaRmRuVjJyOGFhamswWnUycnNoYkZmN1Yzc3MrMnI3Tzg3YURpTWR5aHlhSEI0NDJqdHlIR3NjTHpoUkhNS2Nacm5WTy8wMnRuR21lZTh4Zm1PQzkwbDBtV3hTNVBMRjFjM1Y3SHJmdGR1TjFPM1ZMZE5icmZkTmQxajNKZTVYL1FnZUFSNHpQTm85UGprNmVxWjUzbkk4eDh2VzY4c3J6MWV6OGRaak9PTnF4clg0VzNzemZiZTd0M3V3L1JKOWRubTArNXI1TXYycmZSOTRtZml4L1hiNmZmTTM4by8wMyt2LzZzQSt3Qnh3TkdBRDRHZWdYTUNUd1ZoUWFGQkpVRXR3UnJCQ2NFYmd4K0ZHSWRraE5TRTlJYTZoTTRLUFJWR0NBc1BXeFYybTZYUDRyQ3FXYjNqM2NiUEdYODJuQm9lRjc0eC9FbUVkWVE0b2lFU2pSd2Z1VHJ5UVpSWmxEQ3FMaHBFczZKWFJ6K01zWWpKamZsakFuRkN6SVNLQ1YyeERyR3pZeS9FMGVPbXhlMkpleDhmRUw4aS9uNkNaWUkwb1NsUk5YRnlZblhpaDZTZ3BMS2s5b2xqSjg2WmVDVlpOMW1RWEo5Q1NrbE0yWm5TTnlsNDB0cEpuWk5kSmhkUHZqWEZZa3JCbEV0VGRhZG1UejArVFhVYWU5cmhWRUpxVXVxZTFBRjJOTHVTM1pmR1N0dVUxc3NKNUt6anZPVDZjZGR3dTNuZXZETGVzM1R2OUxMMDV4bmVHYXN6dXZtKy9ISitqeUJRc0ZId09qTXNjMnZtaDZ6b3JGMVpnOWxKMlFkeWxISlNjNDRKTllSWndyUFREYVlYVEc4VDJZaUtSZTI1bnJscmMzdkY0ZUtkRWtReVJWS2Zwd2tQMmMxU1Mra3Ywc2Y1UHZrVitSOW5KTTQ0WEtCZUlDeG9ubWs5YytuTVo0VWhoYi9Od21keFpqWE5OcHE5WVBiak9mNXp0czlGNXFiTmJacG5NbS9Sdk03NW9mTjNMNkFzeUZyd1o1RjlVVm5SdTRWSkN4c1c2UythdjZqamw5QmZhb3BWaXNYRnR4ZDdMZDY2QkY4aVdOS3kxR25waHFWZlM3Z2xsMHZ0Uzh0TEI1WnhsbDMrMWVIWDliOE9MazlmM3JMQ2RjV1dsY1NWd3BXM1Z2bXUybDJtWGxaWTFyRTZjblh0R3VhYWtqWHYxazViZTZuY3VYenJPc282NmJyMjlSSHI2emVZYmxpNVlXQWpmK1BOaW9DS0E1djBOaTNkOUdFemQvTzFMWDViOW0vVjMxcTY5Zk0yd2JZNzIwTzMxMWFhVjVidklPN0kzOUZWbFZoMTRUZjMzNnAzNnU0czNmbGxsM0JYKys3WTNXZXIzYXFyOStqdFdWR0Qxa2hydXZkTzN0dTZMMmhmL1g3Yi9kc1BNQTZVSGdRSHBRZGYvSjc2KzYxRDRZZWFEcnNmM24vRTdNaW1vL1NqSmJWSTdjemEzanArWFh0OWNuM2JzZkhIbWhxOEdvNytZZmZIcmthanhvcmpXc2RYbktDY1dIUmk4R1RoeWI1VG9sTTlwek5PZHpSTmE3cC9adUtaRzJjbm5HMDVGMzd1NHZtUTgyY3UrRjg0ZWRIN1l1TWx6MHZITHJ0ZnJydmllcVcyMmFYNTZKOHVmeDV0Y1cycHZlcDJ0YjdWbzdXaGJWemJpV3UrMTA1ZkQ3cCsvZ2JyeHBXYlVUZmJiaVhjdW5ONzh1MzJPOXc3eis5bTMzMTlMLzllLy8zNUR3Z1BTaDZxUFN4L3BQZW84aStydnc2MHU3WWZmeHowdVBsSjNKUDdIWnlPbDA4bFR3YzZGM1hSdXNxZkdUNnJmdTc0dkxFN3BMdjF4YVFYblM5RkwvdDdpdjlXLzN2VEs4dFhSLzd4KzZlNWQySnY1MnZ4NjhFM3k5N3F2TjMxenZsZFUxOU0zNlAzT2UvN1A1UjgxUG00KzVQN3B3dWZrejQvNjU4eFFCcFkvOFhxUzhQWDhLOFBCbk1HQjBWc01WdCtGTUJnUjlQVEFYaXpDd0JhTWp3N3RBSkFtYVM0bThrYm9yaFB5Z244TjFiYzMrVE5GWUJkZmdBa3pBY2dBcDVSdHNCdUJwa0szN0lqZUx3ZlFKMmNSdnBRazZRN09TcHNVZUdOaGZCeGNQQ3RQZ0NrQmdDK2lBY0gremNQRG42cGdzSGVCZUJVcnVKT0tHdXlPK2cyT3htMWRyNzY2VzcySDFvQ2NTamg2c01sQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUY5bWxVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQRDk0Y0dGamEyVjBJR0psWjJsdVBTTHZ1NzhpSUdsa1BTSlhOVTB3VFhCRFpXaHBTSHB5WlZONlRsUmplbXRqT1dRaVB6NGdQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlRV1J2WW1VZ1dFMVFJRU52Y21VZ05TNDJMV014TkRBZ056a3VNVFl3TkRVeExDQXlNREUzTHpBMUx6QTJMVEF4T2pBNE9qSXhJQ0FnSUNBZ0lDQWlQaUE4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGlBOGNtUm1Pa1JsYzJOeWFYQjBhVzl1SUhKa1pqcGhZbTkxZEQwaUlpQjRiV3h1Y3pwNGJYQTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzhpSUhodGJHNXpPbVJqUFNKb2RIUndPaTh2Y0hWeWJDNXZjbWN2WkdNdlpXeGxiV1Z1ZEhNdk1TNHhMeUlnZUcxc2JuTTZjR2h2ZEc5emFHOXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNCb2IzUnZjMmh2Y0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JGZG5ROUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlVWMlpXNTBJeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE9DQW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSGh0Y0RwTmIyUnBabmxFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQjRiWEE2VFdWMFlXUmhkR0ZFWVhSbFBTSXlNREU0TFRBM0xUSTNWREEzT2pVNU9qQTRMVEEzT2pBd0lpQmtZenBtYjNKdFlYUTlJbWx0WVdkbEwzQnVaeUlnY0dodmRHOXphRzl3T2tOdmJHOXlUVzlrWlQwaU15SWdjR2h2ZEc5emFHOXdPa2xEUTFCeWIyWnBiR1U5SWtScGMzQnNZWGtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2T1dWbU1UZzNaVFV0TVdWbU55MDBOemxoTFdFMVkyUXRNbVZrTVRFNU5qUTJZMlptSWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKaFpHOWlaVHBrYjJOcFpEcHdhRzkwYjNOb2IzQTZNVFJtTlRrNVlUTXRZVGMxWmkwNU5EUXhMVGszWkRRdE1tWTNPVE5qTldRM05USTNJaUI0YlhCTlRUcFBjbWxuYVc1aGJFUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZNMkZtWW1ZM1pXWXROV0ZpT1MwME1UazRMV0ZqT0RVdE56WTJOekUyTkRrMk9ETTFJajRnUEhodGNFMU5Pa2hwYzNSdmNuaytJRHh5WkdZNlUyVnhQaUE4Y21SbU9teHBJSE4wUlhaME9tRmpkR2x2YmowaVkzSmxZWFJsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvellXWmlaamRsWmkwMVlXSTVMVFF4T1RndFlXTTROUzAzTmpZM01UWTBPVFk0TXpVaUlITjBSWFowT25kb1pXNDlJakl3TVRndE1EY3RNamRVTURjNk5UWTZORGN0TURjNk1EQWlJSE4wUlhaME9uTnZablIzWVhKbFFXZGxiblE5SWtGa2IySmxJRkJvYjNSdmMyaHZjQ0JEUXlBeU1ERTRJQ2hOWVdOcGJuUnZjMmdwSWk4K0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0p6WVhabFpDSWdjM1JGZG5RNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEbzVaV1l4T0RkbE5TMHhaV1kzTFRRM09XRXRZVFZqWkMweVpXUXhNVGsyTkRaalptWWlJSE4wUlhaME9uZG9aVzQ5SWpJd01UZ3RNRGN0TWpkVU1EYzZOVGs2TURndE1EYzZNREFpSUhOMFJYWjBPbk52Wm5SM1lYSmxRV2RsYm5ROUlrRmtiMkpsSUZCb2IzUnZjMmh2Y0NCRFF5QXlNREU0SUNoTllXTnBiblJ2YzJncElpQnpkRVYyZERwamFHRnVaMlZrUFNJdklpOCtJRHd2Y21SbU9sTmxjVDRnUEM5NGJYQk5UVHBJYVhOMGIzSjVQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcjQ2dGpBQUFBQ0JTVVJCVkNqUFkvai8vejhET2dhQ1ZWakZzU2dNQjJJUUl4dXZZaUJnQnVKSFVNWGZnVmdDbitJK3FFSVlYb3hWTVJCWW95bUVZWDlzaW8vaFVIejc5Ky9mQ01WQVVJeERJUXkzUTlVeHlBUHhQd0tLUWRnRUhLWkFmSTRJdko4QlcrRGp3b05GTVVrZUpDbm9TSW9Va3FPYjVJUkVVaElsT2ZHVGxLMElaVmdBa09EUnBEN2kzME1BQUFBQVNVVk9SSzVDWUlJPSk7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2FsYygxMDAlIC0gNHB4KSA1MCU7XHJcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxuICBiYWNrZ3JvdW5kLXNpemU6IDVweCAxMXB4O1xyXG59XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTgzZmRiNTY2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTgzZmRiNTY2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiODNmZGI1NjZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJ3cmFwcGVyXCJ9LFtfYygndWwnLHtzdGF0aWNDbGFzczpcImxpc3RcIn0sX3ZtLl9sKChfdm0uc2hvd09iai5mb3JtKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2xpJyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFsoaXRlbS5mb3JtVHlwZSA9PSAnZGF0ZScpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKycg4oCcJyArIGl0ZW0udmFsdWVbMF0gKyAnLScgKyBpdGVtLnZhbHVlWzFdICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsnIOKAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSA9PT0gJ3NlbGVjdCcgJiYgaXRlbS52YWx1ZS5sZW5ndGggPiAwKT9fYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIF92bS5nZXRTZWxlY3ROYW1lKGl0ZW0pICsgJ+KAnScpKV0pOihpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJyk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKGl0ZW0ubmFtZSArICcgJyArIF92bS5vcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBfdm0uZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nKSldKTooaXRlbS5mb3JtVHlwZSAhPSAndGV4dCcgJiYgaXRlbS5maWVsZE5hbWUuZW5kc1dpdGgoJ0lEJykpP19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUgKyAnICcgKyBfdm0ub3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgX3ZtLmdldFJlbGF0aXZlTmFtZShpdGVtKSArICfigJ0nKSldKTpfYygnc3BhbicsW192bS5fdihfdm0uX3MoaXRlbS5uYW1lICsgJyAnICsgX3ZtLm9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWUgKyAn4oCdJykpXSksX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tY2xvc2UgaWNvblwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCl9fX0pXSl9KSwwKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XHJcbiAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgIDx1bCBjbGFzcz1cImxpc3RcIj5cclxuICAgICAgPGxpXHJcbiAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIHNob3dPYmouZm9ybVwiXHJcbiAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgIDxzcGFuIHYtaWY9XCJpdGVtLmZvcm1UeXBlID09ICdkYXRlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlWzBdICsgJy0nICsgaXRlbS52YWx1ZVsxXSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIj57eyBpdGVtLm5hbWUgKycmbmJzcDvigJwnICsgaXRlbS52YWx1ZVswXSArICctJyArIGl0ZW0udmFsdWVbMV0gKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8IS0tIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgPT09ICdidXNpbmVzc190eXBlJ1wiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBnZXRUeXBlc05hbWUoaXRlbSkgKyBnZXRTdGF0dXNOYW1lKGl0ZW0pICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ21hcF9hZGRyZXNzJ1wiPnt7IGAke2l0ZW0ubmFtZX0gJHtpdGVtLmFkZHJlc3Muc3RhdGV9ICR7aXRlbS5hZGRyZXNzLmNpdHl9ICR7aXRlbS5hZGRyZXNzLmFyZWF9YCB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A74oCcJyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0rICfigJ0nKycmbmJzcDsnKyBnZXRDaGVja05hbWUoaXRlbSkgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gdi1lbHNlLWlmPVwiaXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCI+e3sgaXRlbS5uYW1lICsnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGl0ZW0udmFsdWVbMF0ucmVhbG5hbWUgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnY2F0ZWdvcnknICYmIGl0ZW0udmFsdWUubGVuZ3RoID4gMFwiPnt7IGl0ZW0ubmFtZSArJyZuYnNwO+KAnCcgKyBpdGVtLnZhbHVlQ29udGVudCArICfigJ0nIH19PC9zcGFuPiAtLT5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0JyAmJiBpdGVtLnZhbHVlLmxlbmd0aCA+IDBcIj57eyBpdGVtLm5hbWUgKyAnJm5ic3A7JyArIG9wdGlvbnNOYW1lc1tpdGVtLmNvbmRpdGlvbl0gKyAn4oCcJyArIGdldFNlbGVjdE5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2UtaWY9XCJpdGVtLmZvcm1UeXBlID09PSAnc3dpdGNoJ1wiPnt7IGl0ZW0ubmFtZSArICcmbmJzcDsnICsgb3B0aW9uc05hbWVzW2l0ZW0uY29uZGl0aW9uXSArICfigJwnICsgZ2V0U3dpdGNoTmFtZShpdGVtKSArICfigJ0nIH19PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIHYtZWxzZS1pZj1cIml0ZW0uZm9ybVR5cGUgIT0gJ3RleHQnICYmIGl0ZW0uZmllbGROYW1lLmVuZHNXaXRoKCdJRCcpXCI+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBnZXRSZWxhdGl2ZU5hbWUoaXRlbSkgKyAn4oCdJyB9fTwvc3Bhbj5cclxuICAgICAgICA8c3BhbiB2LWVsc2U+e3sgaXRlbS5uYW1lICsgJyZuYnNwOycgKyBvcHRpb25zTmFtZXNbaXRlbS5jb25kaXRpb25dICsgJ+KAnCcgKyBpdGVtLnZhbHVlICsgJ+KAnScgfX08L3NwYW4+XHJcbiAgICAgICAgPGlcclxuICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1jbG9zZSBpY29uXCJcclxuICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZShpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdGaWx0ZXJDb250ZW50JyxcclxuICBwcm9wczoge1xyXG4gICAgb2JqOiB7XHJcbiAgICAgIHR5cGU6IE9iamVjdCxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIOiOt+WPluadoeS7tuWQjeensFxyXG4gICAgICBvcHRpb25zTmFtZXM6IHtcclxuICAgICAgICBpczogJ+etieS6jicsXHJcbiAgICAgICAgaXNOb3Q6ICfkuI3nrYnkuo4nLFxyXG4gICAgICAgIGNvbnRhaW5zOiAn5YyF5ZCrJyxcclxuICAgICAgICBub3RDb250YWluczogJ+S4jeWMheWQqycsXHJcbiAgICAgICAgc3RhcnRXaXRoOiAn5byA5aeL5LqOJyxcclxuICAgICAgICBlbmRXaXRoOiAn57uT5p2f5LqOJyxcclxuICAgICAgICBpc051bGw6ICfkuLrnqbonLFxyXG4gICAgICAgIGlzTm90TnVsbDogJ+S4jeS4uuepuicsXHJcbiAgICAgICAgZXE6ICfnrYnkuo4nLFxyXG4gICAgICAgIG5lcTogJ+S4jeetieS6jicsXHJcbiAgICAgICAgZ3Q6ICflpKfkuo4nLFxyXG4gICAgICAgIGVndDogJ+Wkp+S6juetieS6jicsXHJcbiAgICAgICAgbHQ6ICflsI/kuo4nLFxyXG4gICAgICAgIGVsdDogJ+Wwj+S6juetieS6jidcclxuICAgICAgfSxcclxuICAgICAgLy8g5bGV56S65L+h5oGvXHJcbiAgICAgIHNob3dPYmo6IHt9XHJcbiAgICB9XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHtcclxuICAgIG9iajogZnVuY3Rpb24odmFsKSB7XHJcbiAgICAgIHRoaXMuc2hvd09iaiA9IHZhbFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbW91bnRlZCgpIHtcclxuICAgIHRoaXMuc2hvd09iaiA9IHRoaXMub2JqXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOmrmOe6p+etm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpdGVtLCBpbmRleCkge1xyXG4gICAgICB0aGlzLiRkZWxldGUodGhpcy5zaG93T2JqLm9iaiwgaXRlbS5maWVsZE5hbWUpXHJcbiAgICAgIHRoaXMuc2hvd09iai5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgdGhpcy4kZW1pdCgnZGVsZXRlJywgeyBpdGVtOiBpdGVtLCBpbmRleDogaW5kZXgsIG9iajogdGhpcy5zaG93T2JqIH0pXHJcbiAgICB9LFxyXG4gICAgLy8g5ZWG5py657uE5bGV56S65ZCN56ewXHJcbiAgICBnZXRUeXBlc05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBkYXRhLnR5cGVPcHRpb24uZmluZChpdGVtID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLnR5cGVJZCA9PT0gZGF0YS50eXBlSWRcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBvYmoubmFtZSB8fCAnJ1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAnJ1xyXG4gICAgfSxcclxuICAgIGdldENoZWNrTmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhbHVlID09PSBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICB2YWx1ZSA9IGl0ZW0ubmFtZVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICAvLyDllYbmnLrpmLbmrrXlsZXnpLrlkI3np7BcclxuICAgIGdldFN0YXR1c05hbWUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS5zdGF0dXNJZCkge1xyXG4gICAgICAgIGNvbnN0IG9iaiA9IGRhdGEuc3RhdHVzT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS5zdGF0dXNJZCA9PT0gZGF0YS5zdGF0dXNJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKG9iai5uYW1lKSB7XHJcbiAgICAgICAgICByZXR1cm4gJy0nICsgb2JqLm5hbWVcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9LFxyXG4gICAgZ2V0U2VsZWN0TmFtZShkYXRhKSB7XHJcbiAgICAgIGxldCB2YWx1ZSA9ICcnXHJcbiAgICAgIGRhdGEuc2V0dGluZy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnNwbGl0KFwiLFwiKVsxXSA9PT0gZGF0YS52YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSBpdGVtLnNwbGl0KFwiLFwiKVswXVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICByZXR1cm4gdmFsdWVcclxuICAgIH0sXHJcbiAgICBnZXRTd2l0Y2hOYW1lKGRhdGEpIHtcclxuICAgICAgIHJldHVybiAgZGF0YS52YWx1ZT09PWZhbHNlPyAn5ZCmJzon5pivJztcclxuICAgIH0gLFxyXG4gICAgZ2V0UmVsYXRpdmVOYW1lKGRhdGEpXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEuZGlzcGxhZFZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBzY29wZWQgbGFuZz1cInNjc3NcIj5cclxuQG1peGluIGxlZnQoKSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5AbWl4aW4gY2VudGVyKCkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLndyYXBwZXIge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XHJcbiAgZm9udC1zaXplOiAxM3B4O1xyXG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcclxuICBjb2xvcjogI2FhYTtcclxuICBAaW5jbHVkZSBsZWZ0O1xyXG4gIC5saXN0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcGFkZGluZzogMCAyMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgQGluY2x1ZGUgbGVmdDtcclxuICAgIC5saXN0LWl0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICAgbWFyZ2luOiAxMHB4IDE1cHggMCAwO1xyXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTFlMWUxO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgICBAaW5jbHVkZSBjZW50ZXI7XHJcbiAgICAgIC5pY29uIHtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9maWx0ZXJDb250ZW50LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZmlsdGVyQ29udGVudC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIzODU4MGYyMlwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ2aXNpYmxlXCI6X3ZtLnZpc2libGUsXCJhcHBlbmQtdG8tYm9keVwiOnRydWUsXCJ0aXRsZVwiOlwi5Zy65pmv566h55CGXCIsXCJ3aWR0aFwiOlwiNzAwcHhcIn0sb246e1widXBkYXRlOnZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS52aXNpYmxlPSRldmVudH0sXCJjbG9zZVwiOl92bS5oYW5kbGVDYW5jZWx9fSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5oKo5Y+v6YCa6L+H5ouW5ou9566h55CG5qCH562+XCIpXSksX2MoJ2ZsZXhib3gnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3RcIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkXCJ9LFtfYygnZWwtY2hlY2tib3gnLHthdHRyczp7XCJpbmRldGVybWluYXRlXCI6X3ZtLmlzbGVmdEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVsZWZ0Q2hlY2tBbGxDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmNoZWNrbGVmdEFsbCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5jaGVja2xlZnRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tsZWZ0QWxsXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1oZWFkLW5hbWVcIn0sW192bS5fdihcIuaYvuekuueahOagh+etvlwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIn0sW192bS5fdihfdm0uX3MoX3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIF92bS5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfdm0uX2woKF92bS5jaGVja2VkTGVmdERhdGEpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiAoaXRlbS5pc1N5c3RlbSA9PSAxKT9fYygnZmxleGJveCcse2tleTppbmRleCxzdGF0aWNDbGFzczpcImxpc3QtaXRlbVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiZGVmYXVsdC1tYXJrXCIsY2xhc3M6eydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IF92bS5kZWZhdWx0SWR9fSksX2MoJ2VsLWNoZWNrYm94Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tY2hlY2tcIixhdHRyczp7XCJkaXNhYmxlZFwiOnRydWV9LG9uOntcImNoYW5nZVwiOl92bS5sZWZ0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0taGFuZGxlXCJ9LFtfYygnZWwtZHJvcGRvd24nLHthdHRyczp7XCJ0cmlnZ2VyXCI6XCJjbGlja1wifSxvbjp7XCJjb21tYW5kXCI6X3ZtLmRlZmF1bHRIYW5kbGV9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctZG93blwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLml0ZW1IYW5kbGUoJ2RlZmF1bHQnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bi1tZW51Jyx7YXR0cnM6e1wic2xvdFwiOlwiZHJvcGRvd25cIn0sc2xvdDpcImRyb3Bkb3duXCJ9LFtfYygnZWwtZHJvcGRvd24taXRlbScsW192bS5fdihcIuiuvue9ruS4uum7mOiupOagh+etvlwiKV0pXSwxKV0sMSldLDEpXSwxKTpfdm0uX2UoKX0pLF9jKCdkcmFnZ2FibGUnLHtzdGF0aWNTdHlsZTp7XCJtaW4taGVpZ2h0XCI6XCIxMDBweFwifSxhdHRyczp7XCJtb3ZlXCI6X3ZtLmxlZnRNb3ZlLFwib3B0aW9uc1wiOntncm91cDogJ2xpc3QnLGZvcmNlRmFsbGJhY2s6ZmFsc2UsIGZhbGxiYWNrQ2xhc3M6J2RyYWdnaW5nU3R5bGUnfX0sb246e1wiZW5kXCI6X3ZtLmxlZnRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkTGVmdERhdGEpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uY2hlY2tlZExlZnREYXRhPSQkdn0sZXhwcmVzc2lvbjpcImNoZWNrZWRMZWZ0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZExlZnREYXRhKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gKGl0ZW0uaXNTeXN0ZW0gIT0gMSk/X2MoJ2ZsZXhib3gnLHtrZXk6aW5kZXgsc3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW1cIn0sW19jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRlZmF1bHQtbWFya1wiLGNsYXNzOnsnZGVmYXVsdC1tYXJrLWFjdGl2ZSc6IGl0ZW0uc2NlbmVJZCA9PSBfdm0uZGVmYXVsdElkfX0pLF9jKCdlbC1jaGVja2JveCcse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLWNoZWNrXCIsb246e1wiY2hhbmdlXCI6X3ZtLmxlZnRDaGVja0l0ZW1DaGFuZ2V9LG1vZGVsOnt2YWx1ZTooaXRlbS5jaGVjayksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGl0ZW0sIFwiY2hlY2tcIiwgJCR2KX0sZXhwcmVzc2lvbjpcIml0ZW0uY2hlY2tcIn19KSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJsaXN0LWl0ZW0tbmFtZVwifSxbX3ZtLl92KF92bS5fcyhpdGVtLm5hbWUpKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1oYW5kbGVcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVkaXRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdlZGl0JywgaXRlbSwgaW5kZXgpfX19KSxfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1kZWxldGVcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5pdGVtSGFuZGxlKCdkZWxldGUnLCBpdGVtLCBpbmRleCl9fX0pLF9jKCdlbC1kcm9wZG93bicse29uOntcImNvbW1hbmRcIjpfdm0uZGVmYXVsdEhhbmRsZX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1kb3duXCIsb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KX19fSksX2MoJ2VsLWRyb3Bkb3duLW1lbnUnLHthdHRyczp7XCJzbG90XCI6XCJkcm9wZG93blwifSxzbG90OlwiZHJvcGRvd25cIn0sW19jKCdlbC1kcm9wZG93bi1pdGVtJyxbX3ZtLl92KFwi6K6+572u5Li66buY6K6k5qCH562+XCIpXSldLDEpXSwxKV0sMSldLDEpOl92bS5fZSgpfSksMSldLDIpXSwxKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtbGlzdFwifSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwic2NlbmUtbWlkZGxlLWxlZnQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfSxhdHRyczp7XCJkaXNhYmxlZFwiOl92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDB9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmNoYW5nZVBvc2l0b24oJ2xlZnQnKX19fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwifSldKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1taWRkbGUtcmlnaHQtYnV0dG9uXCIsY2xhc3M6eydzY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCc6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDB9LGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA9PSAwfSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5jaGFuZ2VQb3NpdG9uKCdyaWdodCcpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiZWwtaWNvbi1hcnJvdy1yaWdodCBzY2VuZS1taWRkbGUtaWNvblwifSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib3hcIn0sW19jKCdmbGV4Ym94Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWRcIn0sW19jKCdlbC1jaGVja2JveCcse2F0dHJzOntcImluZGV0ZXJtaW5hdGVcIjpfdm0uaXNyaWdodEluZGV0ZXJtaW5hdGV9LG9uOntcImNoYW5nZVwiOl92bS5oYW5kbGVyaWdodENoZWNrQWxsQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja3JpZ2h0QWxsKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrcmlnaHRBbGw9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tyaWdodEFsbFwifX0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLWxpc3QtaGVhZC1uYW1lXCJ9LFtfdm0uX3YoXCLpmpDol4/nmoTmoIfnrb5cIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1saXN0LWhlYWQtZGV0YWlsXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5yaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgX3ZtLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSldKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbGlzdC1ib2R5XCJ9LFtfYygnZHJhZ2dhYmxlJyx7c3RhdGljU3R5bGU6e1wibWluLWhlaWdodFwiOlwiMTAwcHhcIn0sYXR0cnM6e1wibW92ZVwiOl92bS5yaWdodE1vdmUsXCJvcHRpb25zXCI6e2dyb3VwOiAnbGlzdCcsZm9yY2VGYWxsYmFjazpmYWxzZSwgZmFsbGJhY2tDbGFzczonZHJhZ2dpbmdTdHlsZSd9fSxvbjp7XCJlbmRcIjpfdm0ucmlnaHRNb3ZlRW5kfSxtb2RlbDp7dmFsdWU6KF92bS5jaGVja2VkUmlnaHREYXRhKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLmNoZWNrZWRSaWdodERhdGE9JCR2fSxleHByZXNzaW9uOlwiY2hlY2tlZFJpZ2h0RGF0YVwifX0sX3ZtLl9sKChfdm0uY2hlY2tlZFJpZ2h0RGF0YSksZnVuY3Rpb24oaXRlbSxpbmRleCl7cmV0dXJuIF9jKCdmbGV4Ym94Jyx7a2V5OmluZGV4LHN0YXRpY0NsYXNzOlwibGlzdC1pdGVtXCJ9LFtfYygnZWwtY2hlY2tib3gnLHtzdGF0aWNDbGFzczpcImxpc3QtaXRlbS1jaGVja1wiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi1sZWZ0XCI6XCI5cHhcIn0sb246e1wiY2hhbmdlXCI6X3ZtLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlfSxtb2RlbDp7dmFsdWU6KGl0ZW0uY2hlY2spLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChpdGVtLCBcImNoZWNrXCIsICQkdil9LGV4cHJlc3Npb246XCJpdGVtLmNoZWNrXCJ9fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibGlzdC1pdGVtLW5hbWVcIn0sW192bS5fdihfdm0uX3MoaXRlbS5uYW1lKSldKV0sMSl9KSwxKV0sMSldLDEpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiaGFuZGxlLWJhci1hZGRcIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5hZGRBbmRFZGl0U2NlbmUoJ2FkZCcse30pfX19LFtfdm0uX3YoXCIrIOaWsOW7uuWcuuaZr1wiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImhhbmRsZS1iYXItc2F2ZVwifSxbX2MoJ2VsLWJ1dHRvbicse25hdGl2ZU9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUNhbmNlbCgkZXZlbnQpfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxuYXRpdmVPbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVDb25maXJtKCRldmVudCl9fX0sW192bS5fdihcIuS/neWtmFwiKV0pXSwxKV0pLF9jKCdzY2VuZS1jcmVhdGUnLHthdHRyczp7XCJmaWVsZC1saXN0XCI6X3ZtLmZpZWxkTGlzdCxcImNybS10eXBlXCI6X3ZtLmNybVR5cGUsXCJkaWFsb2ctdmlzaWJsZVwiOl92bS5zaG93Q3JlYXRlU2NlbmUsXCJvYmpcIjpfdm0uZmlsdGVyT2JqLFwibmFtZVwiOl92bS5maWx0ZXJOYW1lLFwiZWRpdF9pZFwiOl92bS5maWx0ZXJFZGl0SWQsXCJpcy1kZWZhdWx0XCI6X3ZtLmZpbHRlckRlZmF1bHR9LG9uOntcInVwZGF0ZTpkaWFsb2dWaXNpYmxlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0uc2hvd0NyZWF0ZVNjZW5lPSRldmVudH0sXCJ1cGRhdGU6ZGlhbG9nLXZpc2libGVcIjpmdW5jdGlvbigkZXZlbnQpe192bS5zaG93Q3JlYXRlU2NlbmU9JGV2ZW50fSxcInNhdmVTdWNjZXNzXCI6X3ZtLmdldFNjZW5lTGlzdH19KV0sMSl9XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7dmFyIF92bT10aGlzO3ZhciBfaD1fdm0uJGNyZWF0ZUVsZW1lbnQ7dmFyIF9jPV92bS5fc2VsZi5fY3x8X2g7cmV0dXJuIF9jKCdlbC1kaWFsb2cnLHthdHRyczp7XCJ0aXRsZVwiOl92bS5lZGl0X2lkID8gJ+e8lui+keWcuuaZrycgOiAn5paw5bu65Zy65pmvJyxcInZpc2libGVcIjpfdm0udmlzaWJsZSxcImFwcGVuZC10by1ib2R5XCI6dHJ1ZSxcIndpZHRoXCI6XCI4MDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnZpc2libGU9JGV2ZW50fSxcImNsb3NlXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2NlbmUtbmFtZVwifSxbX3ZtLl92KFwi5Zy65pmv5ZCN56ewXCIpXSksX2MoJ2VsLWlucHV0Jyx7c3RhdGljQ2xhc3M6XCJzY2VuZS1pbnB1dFwiLGF0dHJzOntcIm1heGxlbmd0aFwiOjEwLFwicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLnNhdmVOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLnNhdmVOYW1lPSh0eXBlb2YgJCR2ID09PSAnc3RyaW5nJz8gJCR2LnRyaW0oKTogJCR2KX0sZXhwcmVzc2lvbjpcInNhdmVOYW1lXCJ9fSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInNjZW5lLW5hbWVcIn0sW192bS5fdihcIuetm+mAieadoeS7tlwiKV0pLF9jKCdlbC1mb3JtJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItY29udGFpbmVyXCIsYXR0cnM6e1wiaWRcIjpcInNjZW5lLWZpbHRlci1jb250YWluZXJcIn19LFtfYygnZWwtZm9ybS1pdGVtJyxbX3ZtLl9sKChfdm0uZm9ybSksZnVuY3Rpb24oZm9ybUl0ZW0saW5kZXgpe3JldHVybiBbX2MoJ2VsLXJvdycse2tleTppbmRleH0sW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6OH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeimgeetm+mAieeahOWtl+auteWQjVwifSxvbjp7XCJjaGFuZ2VcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uZmllbGRDaGFuZ2UoZm9ybUl0ZW0pfX0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS5maWVsZE5hbWUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJmaWVsZE5hbWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLmZpZWxkTmFtZVwifX0sX3ZtLl9sKChfdm0uZmllbGRMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmZpZWxkTmFtZSxhdHRyczp7XCJsYWJlbFwiOml0ZW0ubmFtZSxcInZhbHVlXCI6aXRlbS5maWVsZE5hbWV9fSl9KSwxKV0sMSksKGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRldGltZScgJiYgZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdidXNpbmVzc190eXBlJyk/X2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxfX0pOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6NH19LFtfYygnZWwtc2VsZWN0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqeiMg+WbtFwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLmNvbmRpdGlvbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcImNvbmRpdGlvblwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uY29uZGl0aW9uXCJ9fSxfdm0uX2woKF92bS5jYWxDb25kaXRpb25PcHRpb25zKGZvcm1JdGVtLmZvcm1UeXBlLCBmb3JtSXRlbSkpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0udmFsdWUsYXR0cnM6e1wibGFiZWxcIjppdGVtLmxhYmVsLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSldLDEpOl92bS5fZSgpLChmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KTpfdm0uX2UoKSwoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKT9fYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjR9fSxbX2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIn0sb246e1wiY2hhbmdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKX19LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0udHlwZUlkKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidHlwZUlkXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS50eXBlSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0udHlwZU9wdGlvbiksZnVuY3Rpb24oaXRlbSl7cmV0dXJuIF9jKCdlbC1vcHRpb24nLHtrZXk6aXRlbS50eXBlSWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLm5hbWUsXCJ2YWx1ZVwiOml0ZW0udHlwZUlkfX0pfSksMSldLDEpOl92bS5fZSgpLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MX19KSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8IGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAxMyA6IDh9fSxbKGZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0Jyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLGF0dHJzOntcImxhYmVsXCI6aXRlbSxcInZhbHVlXCI6aXRlbX19KX0pLDEpOihmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2NoZWNrU3RhdHVzJyk/X2MoJ2VsLXNlbGVjdCcse2F0dHJzOntcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIn0sbW9kZWw6e3ZhbHVlOihmb3JtSXRlbS52YWx1ZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KGZvcm1JdGVtLCBcInZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtSXRlbS52YWx1ZVwifX0sX3ZtLl9sKChmb3JtSXRlbS5zZXR0aW5nKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnZhbHVlLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnZhbHVlfX0pfSksMSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZScpP19jKCdlbC1kYXRlLXBpY2tlcicse3N0YXRpY1N0eWxlOntcInBhZGRpbmdcIjpcIjBweCAxMHB4XCJ9LGF0dHJzOntcInZhbHVlLWZvcm1hdFwiOmZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgPyAneXl5eS1NTS1kZCcgOiAneXl5eS1NTS1kZCBISDptbTpzcycsXCJ0eXBlXCI6Zm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSk6KGZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZScpP19jKCdlbC1zZWxlY3QnLHthdHRyczp7XCJwbGFjZWhvbGRlclwiOlwi6K+36YCJ5oupXCJ9LG1vZGVsOnt2YWx1ZTooZm9ybUl0ZW0uc3RhdHVzSWQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChmb3JtSXRlbSwgXCJzdGF0dXNJZFwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybUl0ZW0uc3RhdHVzSWRcIn19LF92bS5fbCgoZm9ybUl0ZW0uc3RhdHVzT3B0aW9uKSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLnN0YXR1c0lkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLnN0YXR1c0lkfX0pfSksMSk6X2MoJ2VsLWlucHV0Jyx7YXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+i+k+WFpeetm+mAieadoeS7tlwifSxtb2RlbDp7dmFsdWU6KGZvcm1JdGVtLnZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoZm9ybUl0ZW0sIFwidmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm1JdGVtLnZhbHVlXCJ9fSldLDEpLF9jKCdlbC1jb2wnLHtzdGF0aWNDbGFzczpcImRlbGV0ZVwiLGF0dHJzOntcInNwYW5cIjoxfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIixvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEZWxldGUoaW5kZXgpfX19KV0pXSwxKV19KV0sMildLDEpLF9jKCdwJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd0Vycm9ycyksZXhwcmVzc2lvbjpcInNob3dFcnJvcnNcIn1dLHN0YXRpY0NsYXNzOlwiZWwtaWNvbi13YXJuaW5nIHdhcm5pbmctaW5mb1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImRlc2NcIn0sW192bS5fdihcIuetm+mAieadoeS7tuS4reaciemHjeWkjemhue+8gVwiKV0pXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkfX0sW192bS5fdihcIisg5re75Yqg562b6YCJ5p2h5Lu2XCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZVwifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwic2F2ZS1zZXR0aW5nXCJ9LFtfYygnZWwtY2hlY2tib3gnLHttb2RlbDp7dmFsdWU6KF92bS5zYXZlRGVmYXVsdCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS5zYXZlRGVmYXVsdD0kJHZ9LGV4cHJlc3Npb246XCJzYXZlRGVmYXVsdFwifX0sW192bS5fdihcIuiuvue9ruS4uum7mOiupFwiKV0pXSwxKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse29uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUNhbmNlbH19LFtfdm0uX3YoXCLlj5Yg5raIXCIpXSksX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ29uZmlybX19LFtfdm0uX3YoXCLnoa4g5a6aXCIpXSldLDEpXSwxKX1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxyXG4gIDxlbC1kaWFsb2dcclxuICAgIDp0aXRsZT1cImVkaXRfaWQgPyAn57yW6L6R5Zy65pmvJyA6ICfmlrDlu7rlnLrmma8nXCJcclxuICAgIDp2aXNpYmxlLnN5bmM9XCJ2aXNpYmxlXCJcclxuICAgIDphcHBlbmQtdG8tYm9keT1cInRydWVcIlxyXG4gICAgd2lkdGg9XCI4MDBweFwiXHJcbiAgICBAY2xvc2U9XCJoYW5kbGVDYW5jZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1uYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuWcuuaZr+WQjeensDwvZGl2PlxyXG4gICAgICA8ZWwtaW5wdXRcclxuICAgICAgICB2LW1vZGVsLnRyaW09XCJzYXZlTmFtZVwiXHJcbiAgICAgICAgOm1heGxlbmd0aD1cIjEwXCJcclxuICAgICAgICBjbGFzcz1cInNjZW5lLWlucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcuuaZr+WQjeensO+8jOacgOWkmjEw5Liq5a2X56ymXCIvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbmFtZVwiPuetm+mAieadoeS7tjwvZGl2PlxyXG4gICAgPGVsLWZvcm1cclxuICAgICAgaWQ9XCJzY2VuZS1maWx0ZXItY29udGFpbmVyXCJcclxuICAgICAgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxlbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPHRlbXBsYXRlIHYtZm9yPVwiKGZvcm1JdGVtLCBpbmRleCkgaW4gZm9ybVwiPlxyXG4gICAgICAgICAgPGVsLXJvdyA6a2V5PVwiaW5kZXhcIj5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjhcIj5cclxuICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0uZmllbGROYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oup6KaB562b6YCJ55qE5a2X5q615ZCNXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJmaWVsZENoYW5nZShmb3JtSXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZpZWxkTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmZpZWxkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uZmllbGROYW1lXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgIT09ICdkYXRlJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGV0aW1lJyAmJiBmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSAhPT0gJ2RhdGUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnZGF0ZXRpbWUnICYmIGZvcm1JdGVtLmZvcm1UeXBlICE9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS5jb25kaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nojIPlm7RcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGNhbENvbmRpdGlvbk9wdGlvbnMoZm9ybUl0ZW0uZm9ybVR5cGUsIGZvcm1JdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udmFsdWVcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG5cclxuICAgICAgICAgICAgPCEtLSDllYbmnLrnu4QgLS0+XHJcbiAgICAgICAgICAgIDxlbC1jb2xcclxuICAgICAgICAgICAgICB2LWlmPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnXCJcclxuICAgICAgICAgICAgICA6c3Bhbj1cIjFcIj4mbmJzcDs8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIHYtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiNFwiPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS50eXBlSWRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6lcIlxyXG4gICAgICAgICAgICAgICAgQGNoYW5nZT1cInR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0udHlwZU9wdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnR5cGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0udHlwZUlkXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuXHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxXCI+Jm5ic3A7PC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGV0aW1lJyB8fCBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gMTMgOiA4XCI+XHJcbiAgICAgICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgdi1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnc2VsZWN0J1wiXHJcbiAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybUl0ZW0udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nnrZvpgInmnaHku7ZcIj5cclxuICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIGZvcm1JdGVtLnNldHRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtXCIvPlxyXG4gICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnY2hlY2tTdGF0dXMnXCJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtSXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqeetm+mAieadoeS7tlwiPlxyXG4gICAgICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICB2LWZvcj1cIml0ZW0gaW4gZm9ybUl0ZW0uc2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS52YWx1ZVwiLz5cclxuICAgICAgICAgICAgICA8L2VsLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHwgZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRldGltZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIDp2YWx1ZS1mb3JtYXQ9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ2RhdGUnID8gJ3l5eXktTU0tZGQnIDogJ3l5eXktTU0tZGQgSEg6bW06c3MnXCJcclxuICAgICAgICAgICAgICAgIDp0eXBlPVwiZm9ybUl0ZW0uZm9ybVR5cGUgPT09ICdkYXRlJyA/ICdkYXRlcmFuZ2UnIDogJ2RhdGV0aW1lcmFuZ2UnXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZzogMHB4IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIHJhbmdlLXNlcGFyYXRvcj1cIi1cIlxyXG4gICAgICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICAgICAgZW5kLXBsYWNlaG9sZGVyPVwi57uT5p2f5pel5pyfXCIvPlxyXG4gICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIHYtZWxzZS1pZj1cImZvcm1JdGVtLmZvcm1UeXBlID09PSAnYnVzaW5lc3NfdHlwZSdcIlxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnN0YXR1c0lkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBmb3JtSXRlbS5zdGF0dXNPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5zdGF0dXNJZFwiXHJcbiAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0ubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0uc3RhdHVzSWRcIi8+XHJcbiAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbjwhLS0gICAgICAgICAgICAgIDx4aC11c2VyLWNlbGwtLT5cclxuPCEtLSAgICAgICAgICAgICAgICB2LWVsc2UtaWY9XCJmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6aXRlbT1cImZvcm1JdGVtXCItLT5cclxuPCEtLSAgICAgICAgICAgICAgICA6dmFsdWU9XCJmb3JtSXRlbS52YWx1ZVwiLS0+XHJcbjwhLS0gICAgICAgICAgICAgICAgQHZhbHVlLWNoYW5nZT1cInVzZXJWYWx1ZUNoYW5nZVwiLz4tLT5cclxuICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgIHYtZWxzZVxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm1JdGVtLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl562b6YCJ5p2h5Lu2XCIvPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgICAgPGVsLWNvbFxyXG4gICAgICAgICAgICAgIDpzcGFuPVwiMVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkZWxldGVcIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbC1pY29uLWVycm9yIGRlbGV0ZS1idG5cIlxyXG4gICAgICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRGVsZXRlKGluZGV4KVwiLz5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgIDwvZWwtZm9ybT5cclxuICAgIDxwXHJcbiAgICAgIHYtc2hvdz1cInNob3dFcnJvcnNcIlxyXG4gICAgICBjbGFzcz1cImVsLWljb24td2FybmluZyB3YXJuaW5nLWluZm9cIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjXCI+562b6YCJ5p2h5Lu25Lit5pyJ6YeN5aSN6aG577yBPC9zcGFuPlxyXG4gICAgPC9wPlxyXG4gICAgPGVsLWJ1dHRvblxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIEBjbGljaz1cImhhbmRsZUFkZFwiPisg5re75Yqg562b6YCJ5p2h5Lu2PC9lbC1idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2F2ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2F2ZS1zZXR0aW5nXCI+XHJcbiAgICAgICAgPGVsLWNoZWNrYm94IHYtbW9kZWw9XCJzYXZlRGVmYXVsdFwiPuiuvue9ruS4uum7mOiupDwvZWwtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIHNsb3Q9XCJmb290ZXJcIlxyXG4gICAgICBjbGFzcz1cImRpYWxvZy1mb290ZXJcIj5cclxuICAgICAgPGVsLWJ1dHRvbiBAY2xpY2s9XCJoYW5kbGVDYW5jZWxcIj7lj5Yg5raIPC9lbC1idXR0b24+XHJcbiAgICAgIDxlbC1idXR0b25cclxuICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ29uZmlybVwiPuehriDlrpo8L2VsLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZWwtZGlhbG9nPlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHsgY3JtU2NlbmVTYXZlLCBjcm1TY2VuZVVwZGF0ZSB9IGZyb20gJ0AvYXBpL2N1c3RvbWVybWFuYWdlbWVudC9jb21tb24nXHJcbmltcG9ydCB7XHJcbiAgb2JqRGVlcENvcHlcclxufSBmcm9tICdAL3V0aWxzJ1xyXG4vLyBpbXBvcnQgeyBYaFVzZXJDZWxsIH0gZnJvbSAnQC9jb21wb25lbnRzL0NyZWF0ZUNvbSdcclxuXHJcbi8qKlxyXG4gKiBmaWVsZExpc3Q6IOmrmOe6p+etm+mAieeahOWtl+autVxyXG4gKiAgICAgdHlwZTogIGRhdGUgfHwgZGF0ZXRpbWUgfHwgc2VsZWN0IHx8IOWFtuS7liBpbnB1dFxyXG4gKi9cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6ICdTY2VuZUNyZWF0ZScsIC8vIOaWsOW7uuWcuuaZr1xyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIC8vIFhoVXNlckNlbGxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGZpZWxkTGlzdDoge1xyXG4gICAgICB0eXBlOiBBcnJheSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW11cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIG9iajoge1xyXG4gICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4ge31cclxuICAgICAgfSxcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH0sXHJcbiAgICAvKiog5rKh5pyJ5YC85bCx5piv5YWo6YOo57G75Z6LIOacieWAvOWwseaYr+W9k+S4quexu+WeiyAqL1xyXG4gICAgY3JtVHlwZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6ICcnXHJcbiAgICB9LFxyXG4gICAgLyoqIOWQjeWtl+WSjCDpu5jorqQgaWQg57yW6L6R55qE5pe25YCZ6ZyA6KaBICovXHJcbiAgICBuYW1lOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH0sXHJcbiAgICBpc0RlZmF1bHQ6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBlZGl0X2lkOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JtOiBbXSxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsIC8vIOaOp+WItuWxleekulxyXG4gICAgICBzaG93RXJyb3JzOiBmYWxzZSxcclxuICAgICAgc2F2ZURlZmF1bHQ6IGZhbHNlLCAvLyDorr7nva7kuLrpu5jorqTlnLrmma9cclxuICAgICAgc2F2ZU5hbWU6IG51bGwgLy8g5Zy65pmv5ZCN56ewXHJcbiAgICB9XHJcbiAgfSxcclxuICB3YXRjaDoge1xyXG4gICAgZGlhbG9nVmlzaWJsZToge1xyXG4gICAgICBoYW5kbGVyKHZhbCkge1xyXG4gICAgICAgIGlmICh2YWwpIHtcclxuICAgICAgICAgIC8vIOWkhOeQhue8lui+keaVsOaNrlxyXG4gICAgICAgICAgaWYgKHRoaXMuZWRpdF9pZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBbXVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIGluIHRoaXMub2JqLm9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLm9iai5vYmpbZmllbGRdXHJcbiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbSgpXHJcbiAgICAgICAgICAgICAgaXRlbS5maWVsZE5hbWUgPSBlbGVtZW50Lm5hbWVcclxuICAgICAgICAgICAgICBpdGVtLmNvbmRpdGlvbiA9IGVsZW1lbnQuY29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgaXRlbS5mb3JtVHlwZSA9IGVsZW1lbnQuZm9ybVR5cGVcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBbZWxlbWVudC5zdGFydF9kYXRlLCBlbGVtZW50LmVuZF9kYXRlXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gW2VsZW1lbnQuc3RhcnQsIGVsZW1lbnQuZW5kXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0udHlwZUlkID0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzSWQgPSBlbGVtZW50LnN0YXR1c0lkXHJcbiAgICAgICAgICAgICAgICBpdGVtLnR5cGVPcHRpb24gPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvYmogPSBlbGVtZW50LnNldHRpbmcuZmluZCh0eXBlSXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVJdGVtLnR5cGVJZCA9PT0gZWxlbWVudC50eXBlSWRcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgaWYgKG9iaikge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3RcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnZhbHVlID0gZWxlbWVudC5zZXR0aW5nID8gW2VsZW1lbnQuc2V0dGluZ10gOiBbXVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnNldHRpbmcgPSBlbGVtZW50LnNldHRpbmdcclxuICAgICAgICAgICAgICAgIGl0ZW0udmFsdWUgPSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5wdXNoKGl0ZW0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IG9iakRlZXBDb3B5KHRoaXMub2JqLmZvcm0pXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8qKiDlj6rmnInnvJbovpHkvJrnibXmia/liLDov5nkuKTkuKrlrZfmrrXotYvlgLwgKi9cclxuICAgICAgICAgIGlmICh0aGlzLm5hbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9IHRoaXMubmFtZVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlTmFtZSA9ICcnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0RlZmF1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlRGVmYXVsdCA9IHRoaXMuaXNEZWZhdWx0XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVEZWZhdWx0ID0gZmFsc2VcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5kaWFsb2dWaXNpYmxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlZXA6IHRydWUsXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZVxyXG4gICAgfSxcclxuXHJcbiAgICBmb3JtKCkge1xyXG4gICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7XHJcbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY2VuZS1maWx0ZXItY29udGFpbmVyJylcclxuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gY29udGFpbmVyLnNjcm9sbEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0SXRlbSgpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmaWVsZE5hbWU6ICcnLFxyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIGZvcm1UeXBlOiAnJyxcclxuICAgICAgICBjb25kaXRpb246ICdpcycsXHJcbiAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgIHR5cGVPcHRpb246IFtdLFxyXG4gICAgICAgIHN0YXR1c09wdGlvbjogW10sXHJcbiAgICAgICAgdHlwZUlkOiAnJyxcclxuICAgICAgICBzdGF0dXNJZDogJydcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5ZWG5py657uE54q25oCBXHJcbiAgICAgKi9cclxuICAgIHR5cGVPcHRpb25zQ2hhbmdlKGZvcm1JdGVtKSB7XHJcbiAgICAgIGlmIChmb3JtSXRlbS50eXBlSWQpIHtcclxuICAgICAgICBjb25zdCBvYmogPSBmb3JtSXRlbS50eXBlT3B0aW9uLmZpbmQoaXRlbSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gaXRlbS50eXBlSWQgPT09IGZvcm1JdGVtLnR5cGVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgZm9ybUl0ZW0uc3RhdHVzT3B0aW9uID0gb2JqLnN0YXR1c0xpc3QgfHwgW11cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtSXRlbS5zdGF0dXNPcHRpb24gPSBbXVxyXG4gICAgICB9XHJcbiAgICAgIGZvcm1JdGVtLnN0YXR1c0lkID0gJydcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOeUqOaIt+WIm+W7uuS6ulxyXG4gICAgICovXHJcbiAgICB1c2VyVmFsdWVDaGFuZ2UoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZGF0YS5pdGVtLnZhbHVlID0gZGF0YS52YWx1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRhdGEuaXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiog5p2h5Lu25pWw5o2u5rqQICovXHJcbiAgICBjYWxDb25kaXRpb25PcHRpb25zKGZvcm1UeXBlLCBpdGVtKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICdjaGVja2JveCcgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAndXNlcicgfHxcclxuICAgICAgICBmb3JtVHlwZSA9PSAnY2hlY2tTdGF0dXMnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICBmb3JtVHlwZSA9PSAnbW9kdWxlJyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0JyB8fFxyXG4gICAgICAgIGZvcm1UeXBlID09ICd0ZXh0YXJlYSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHsgdmFsdWU6ICdpcycsIGxhYmVsOiAn562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3QnLCBsYWJlbDogJ+S4jeetieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2NvbnRhaW5zJywgbGFiZWw6ICfljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdub3RDb250YWlucycsIGxhYmVsOiAn5LiN5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybVR5cGUgPT0gJ2Zsb2F0bnVtYmVyJyB8fCBmb3JtVHlwZSA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXMnLCBsYWJlbDogJ+etieS6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTm90JywgbGFiZWw6ICfkuI3nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdjb250YWlucycsIGxhYmVsOiAn5YyF5ZCrJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnbm90Q29udGFpbnMnLCBsYWJlbDogJ+S4jeWMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzJywgbGFiZWw6ICfnrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdpc05vdCcsIGxhYmVsOiAn5LiN562J5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnY29udGFpbnMnLCBsYWJlbDogJ+WMheWQqycsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ25vdENvbnRhaW5zJywgbGFiZWw6ICfkuI3ljIXlkKsnLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdzdGFydFdpdGgnLCBsYWJlbDogJ+W8gOWni+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2VuZFdpdGgnLCBsYWJlbDogJ+e7k+adn+S6jicsIGRpc2FibGVkOiBmYWxzZSB9LFxyXG4gICAgICAgICAgeyB2YWx1ZTogJ2lzTnVsbCcsIGxhYmVsOiAn5Li656m6JywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnaXNOb3ROdWxsJywgbGFiZWw6ICfkuI3kuLrnqbonLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdndCcsIGxhYmVsOiAn5aSn5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWd0JywgbGFiZWw6ICflpKfkuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfSxcclxuICAgICAgICAgIHsgdmFsdWU6ICdsdCcsIGxhYmVsOiAn5bCP5LqOJywgZGlzYWJsZWQ6IGZhbHNlIH0sXHJcbiAgICAgICAgICB7IHZhbHVlOiAnZWx0JywgbGFiZWw6ICflsI/kuo7nrYnkuo4nLCBkaXNhYmxlZDogZmFsc2UgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog5b2T5YmN6YCJ5oup55qE5a2X5q615ZCN5pS55Y+Y77yM5Yik5pat5piv5ZCm5pyJ6YeN5aSNXHJcbiAgICAgKiBAcGFyYW0gZm9ybUl0ZW1cclxuICAgICAqL1xyXG4gICAgZmllbGRDaGFuZ2UoZm9ybUl0ZW0pIHtcclxuICAgICAgY29uc3Qgb2JqID0gdGhpcy5maWVsZExpc3QuZmluZChpdGVtID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5maWVsZE5hbWUgPT09IGZvcm1JdGVtLmZpZWxkTmFtZVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAob2JqKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPSBvYmouZm9ybVR5cGVcclxuICAgICAgICBmb3JtSXRlbS5uYW1lID0gb2JqLm5hbWVcclxuICAgICAgICBpZiAoZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2J1c2luZXNzX3R5cGUnKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlT3B0aW9uID0gb2JqLnNldHRpbmdcclxuICAgICAgICAgIGZvcm1JdGVtLnN0YXR1c09wdGlvbiA9IFtdXHJcbiAgICAgICAgICBmb3JtSXRlbS50eXBlSWQgPSAnJ1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc3RhdHVzSWQgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PSAnc2VsZWN0JyB8fFxyXG4gICAgICAgICAgZm9ybUl0ZW0uZm9ybVR5cGUgPT0gJ2NoZWNrU3RhdHVzJ1xyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZm9ybUl0ZW0uc2V0dGluZyA9IG9iai5zZXR0aW5nIHx8IFtdXHJcbiAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZScgfHxcclxuICAgICAgICAgIGZvcm1JdGVtLmZvcm1UeXBlID09PSAnZGF0ZXRpbWUnIHx8XHJcbiAgICAgICAgICBmb3JtSXRlbS5mb3JtVHlwZSA9PT0gJ3VzZXInXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmb3JtSXRlbS52YWx1ZSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmZvcm0uZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgIHJldHVybiBpdGVtLmZpZWxkTmFtZSA9PT0gZm9ybUl0ZW0uZmllbGROYW1lXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmIChhcnIubGVuZ3RoID4gMSkgdGhpcy5zaG93RXJyb3JzID0gdHJ1ZVxyXG4gICAgICBlbHNlIHRoaXMuc2hvd0Vycm9ycyA9IGZhbHNlXHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDlj5bmtojpgInmi6lcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQ2FuY2VsKCkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZVxyXG4gICAgICB0aGlzLiRlbWl0KCd1cGRhdGU6ZGlhbG9nVmlzaWJsZScsIGZhbHNlKVxyXG4gICAgfSxcclxuICAgIC8qKlxyXG4gICAgICog56Gu5a6a6YCJ5oupXHJcbiAgICAgKi9cclxuICAgIGhhbmRsZUNvbmZpcm0oKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFcnJvcnMpIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfnrZvpgInmnaHku7bkuK3mnInph43lpI3pobnvvIEnKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5zYXZlTmFtZSB8fCB0aGlzLnNhdmVOYW1lID09PSAnJykge1xyXG4gICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WcuuaZr+WQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZvcm0ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBvID0gdGhpcy5mb3JtW2ldXHJcbiAgICAgICAgaWYgKCFvLmZpZWxkTmFtZSB8fCBvLmZpZWxkTmFtZSA9PT0gJycpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+imgeetm+mAieeahOWtl+auteWQjeensOS4jeiDveS4uuepuu+8gScpXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdidXNpbmVzc190eXBlJykge1xyXG4gICAgICAgICAgaWYgKCFvLnR5cGVJZCAmJiAhby5zdGF0dXNJZCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAnZGF0ZScgfHxcclxuICAgICAgICAgIG8uZm9ybVR5cGUgPT0gJ2RhdGV0aW1lJyB8fFxyXG4gICAgICAgICAgby5mb3JtVHlwZSA9PSAndXNlcidcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmICghby52YWx1ZSB8fCBvLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCFvLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfor7fovpPlhaXnrZvpgInmnaHku7bnmoTlgLzvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IG9iaiA9IHt9XHJcbiAgICAgIHRoaXMuZm9ybS5mb3JFYWNoKG8gPT4ge1xyXG4gICAgICAgIGlmIChvLmZvcm1UeXBlID09ICdkYXRldGltZScgfHwgby5mb3JtVHlwZSA9PSAnZGF0ZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0OiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBlbmQ6IG8udmFsdWVbMV0sXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoby5mb3JtVHlwZSA9PSAnYnVzaW5lc3NfdHlwZScpIHtcclxuICAgICAgICAgIG9ialtvLmZpZWxkTmFtZV0gPSB7XHJcbiAgICAgICAgICAgIHR5cGVJZDogby50eXBlSWQsXHJcbiAgICAgICAgICAgIHN0YXR1c0lkOiBvLnN0YXR1c0lkLFxyXG4gICAgICAgICAgICBmb3JtVHlwZTogby5mb3JtVHlwZSxcclxuICAgICAgICAgICAgbmFtZTogby5maWVsZE5hbWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG8uZm9ybVR5cGUgPT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZVswXS51c2VySWQsXHJcbiAgICAgICAgICAgIGZvcm1UeXBlOiBvLmZvcm1UeXBlLFxyXG4gICAgICAgICAgICBzZXR0aW5nOiBvLnZhbHVlWzBdLFxyXG4gICAgICAgICAgICBuYW1lOiBvLmZpZWxkTmFtZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvYmpbby5maWVsZE5hbWVdID0ge1xyXG4gICAgICAgICAgICBjb25kaXRpb246IG8uY29uZGl0aW9uLFxyXG4gICAgICAgICAgICB2YWx1ZTogby52YWx1ZSxcclxuICAgICAgICAgICAgZm9ybVR5cGU6IG8uZm9ybVR5cGUsXHJcbiAgICAgICAgICAgIG5hbWU6IG8uZmllbGROYW1lXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgIG9iajogb2JqLFxyXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcclxuICAgICAgICBzYXZlRGVmYXVsdDogdGhpcy5zYXZlRGVmYXVsdCxcclxuICAgICAgICBzYXZlTmFtZTogdGhpcy5zYXZlTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVxdWVzdENyZWF0ZVNjZW5lKGRhdGEpXHJcbiAgICB9LFxyXG4gICAgLy8g5Yib5bu65Zy65pmvXHJcbiAgICByZXF1ZXN0Q3JlYXRlU2NlbmUoZGF0YSkge1xyXG4gICAgICAvKiog57yW6L6R5pON5L2cICovXHJcbiAgICAgIGlmICh0aGlzLmVkaXRfaWQpIHtcclxuICAgICAgICAvLyBjcm1TY2VuZVVwZGF0ZSh7XHJcbiAgICAgICAgLy8gICBpc0RlZmF1bHQ6IGRhdGEuc2F2ZURlZmF1bHQgPyAxIDogMCxcclxuICAgICAgICAvLyAgIG5hbWU6IGRhdGEuc2F2ZU5hbWUsXHJcbiAgICAgICAgLy8gICBzY2VuZUlkOiB0aGlzLmVkaXRfaWQsXHJcbiAgICAgICAgLy8gICBkYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhLm9iailcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgLy8gICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgIC8vICAgICAgIG1lc3NhZ2U6ICfnvJbovpHmiJDlip8nXHJcbiAgICAgICAgLy8gICAgIH0pXHJcbiAgICAgICAgLy8gICAgIC8vIOaWsOW7uuaIkOWKn1xyXG4gICAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlU3VjY2VzcycpXHJcbiAgICAgICAgLy8gICAgIHRoaXMuaGFuZGxlQ2FuY2VsKClcclxuICAgICAgICAvLyAgIH0pXHJcbiAgICAgICAgLy8gICAuY2F0Y2goKCkgPT4ge30pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAgIC8vICAgaXNEZWZhdWx0OiBkYXRhLnNhdmVEZWZhdWx0ID8gMSA6IDAsXHJcbiAgICAgICAgLy8gICBuYW1lOiBkYXRhLnNhdmVOYW1lLFxyXG4gICAgICAgIC8vICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YS5vYmopXHJcbiAgICAgICAgLy8gfSlcclxuICAgICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgICAvLyAgICAgICBtZXNzYWdlOiAn5Yib5bu65oiQ5YqfJ1xyXG4gICAgICAgIC8vICAgICB9KVxyXG4gICAgICAgIC8vICAgICAvLyDmlrDlu7rmiJDlip9cclxuICAgICAgICAvLyAgICAgdGhpcy4kZW1pdCgnc2F2ZVN1Y2Nlc3MnKVxyXG4gICAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgICAgLy8gICB9KVxyXG4gICAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDnrZvpgInmnaHku7ZcclxuICAgICAqL1xyXG4gICAgaGFuZGxlQWRkKCkge1xyXG4gICAgICB0aGlzLmZvcm0ucHVzaCh0aGlzLmdldEl0ZW0oKSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWIoOmZpOetm+mAieadoeS7tlxyXG4gICAgICogQHBhcmFtIGluZGV4XHJcbiAgICAgKi9cclxuICAgIGhhbmRsZURlbGV0ZShpbmRleCkge1xyXG4gICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsXHJcbiAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogJ2luZm8nLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3NjcmlwdD5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuICAvZGVlcC8gLmVsLWRpYWxvZ19fYm9keSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgfVxyXG5cclxuICAvZGVlcC8gLmVsLWZvcm0taXRlbV9fbGFiZWwge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIH1cclxuICAuZmlsdGVyLWNvbnRhaW5lciB7XHJcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgfVxyXG5cclxuICAuc2F2ZSB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLm5hbWUge1xyXG4gICAgICB3aWR0aDogMzAwcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG4gICAgICAvZGVlcC8gLmVsLWlucHV0X19pbm5lciB7XHJcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAuc2F2ZS1zZXR0aW5nIHtcclxuICAgICAgbWFyZ2luLXRvcDogMjBweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5lbC1mb3JtLWl0ZW0ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxuICB9XHJcblxyXG4gIC5lbC1yb3cge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIC5kZWxldGUtYnRuIHtcclxuICAgICAgbWFyZ2luLWxlZnQ6IDE1cHg7XHJcbiAgICAgIGNvbG9yOiAjYmJiO1xyXG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB9XHJcbiAgICAuZWwtc2VsZWN0LFxyXG4gICAgLmVsLWRhdGUtZWRpdG9yIHtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAud2FybmluZy1pbmZvIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICNmNTZjNmM7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgLmRlc2Mge1xyXG4gICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC5zY2VuZS1uYW1lLWNvbnRhaW5lciB7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuICAgIC5zY2VuZS1pbnB1dCB7XHJcbiAgICAgIHdpZHRoOiAzMDBweDtcclxuICAgIH1cclxuICB9XHJcbiAgLnNjZW5lLW5hbWUge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICB9XHJcbjwvc3R5bGU+XHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIwYWViYjE2JnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vU2NlbmVDcmVhdGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjBhZWJiMTZcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGVsLWRpYWxvZ1xyXG4gICAgOnZpc2libGUuc3luYz1cInZpc2libGVcIlxyXG4gICAgOmFwcGVuZC10by1ib2R5PVwidHJ1ZVwiXHJcbiAgICB0aXRsZT1cIuWcuuaZr+euoeeQhlwiXHJcbiAgICB3aWR0aD1cIjcwMHB4XCJcclxuICAgIEBjbG9zZT1cImhhbmRsZUNhbmNlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNjZW5lLW5hbWVcIj7mgqjlj6/pgJrov4fmi5bmi73nrqHnkIbmoIfnrb48L2Rpdj5cclxuICAgIDxmbGV4Ym94IGNsYXNzPVwic2NlbmUtbGlzdFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1ib3hcIj5cclxuICAgICAgICA8ZmxleGJveCBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZFwiPlxyXG4gICAgICAgICAgPGVsLWNoZWNrYm94XHJcbiAgICAgICAgICAgIDppbmRldGVybWluYXRlPVwiaXNsZWZ0SW5kZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2xlZnRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlbGVmdENoZWNrQWxsQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1uYW1lXCI+5pi+56S655qE5qCH562+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NlbmUtbGlzdC1oZWFkLWRldGFpbFwiPnt7IGxlZnRDaGVja0l0ZW1zLmxlbmd0aCArICcvJyArIGNoZWNrZWRMZWZ0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGNoZWNrZWRMZWZ0RGF0YVwiXHJcbiAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtID09IDFcIlxyXG4gICAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgOmNsYXNzPVwieydkZWZhdWx0LW1hcmstYWN0aXZlJzogaXRlbS5zY2VuZUlkID09IGRlZmF1bHRJZH1cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZGVmYXVsdC1tYXJrXCIvPlxyXG4gICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICB2LW1vZGVsPVwiaXRlbS5jaGVja1wiXHJcbiAgICAgICAgICAgICAgOmRpc2FibGVkPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW0tY2hlY2tcIlxyXG4gICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtaXRlbS1oYW5kbGVcIj5cclxuICAgICAgICAgICAgICA8ZWwtZHJvcGRvd25cclxuICAgICAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgICAgICBAY29tbWFuZD1cImRlZmF1bHRIYW5kbGVcIj5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVmYXVsdCcsIGl0ZW0sIGluZGV4KVwiLz5cclxuICAgICAgICAgICAgICAgIDxlbC1kcm9wZG93bi1tZW51IHNsb3Q9XCJkcm9wZG93blwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLWRyb3Bkb3duLW1lbnU+XHJcbiAgICAgICAgICAgICAgPC9lbC1kcm9wZG93bj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgICA8ZHJhZ2dhYmxlXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICA6bW92ZT1cImxlZnRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJsZWZ0TW92ZUVuZFwiPlxyXG4gICAgICAgICAgICA8ZmxleGJveFxyXG4gICAgICAgICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBjaGVja2VkTGVmdERhdGFcIlxyXG4gICAgICAgICAgICAgIHYtaWY9XCJpdGVtLmlzU3lzdGVtICE9IDFcIlxyXG4gICAgICAgICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICA6Y2xhc3M9XCJ7J2RlZmF1bHQtbWFyay1hY3RpdmUnOiBpdGVtLnNjZW5lSWQgPT0gZGVmYXVsdElkfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRlZmF1bHQtbWFya1wiLz5cclxuICAgICAgICAgICAgICA8ZWwtY2hlY2tib3hcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJpdGVtLmNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJsZWZ0Q2hlY2tJdGVtQ2hhbmdlXCIvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0tbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0taGFuZGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgIEBjbGljaz1cIml0ZW1IYW5kbGUoJ2VkaXQnLCBpdGVtLCBpbmRleClcIi8+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsLWljb24tZGVsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgQGNsaWNrPVwiaXRlbUhhbmRsZSgnZGVsZXRlJywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgPGVsLWRyb3Bkb3duIEBjb21tYW5kPVwiZGVmYXVsdEhhbmRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWwtaWNvbi1hcnJvdy1kb3duXCJcclxuICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJpdGVtSGFuZGxlKCdkZWZhdWx0JywgaXRlbSwgaW5kZXgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24tbWVudSBzbG90PVwiZHJvcGRvd25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtZHJvcGRvd24taXRlbT7orr7nva7kuLrpu5jorqTmoIfnrb48L2VsLWRyb3Bkb3duLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24tbWVudT5cclxuICAgICAgICAgICAgICAgIDwvZWwtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZmxleGJveD5cclxuICAgICAgICAgIDwvZHJhZ2dhYmxlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGlzdFwiPlxyXG4gICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgIDpjbGFzcz1cInsnc2NlbmUtbWlkZGxlLWJ1dHRvbi1zZWxlY3QnOnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJyaWdodENoZWNrSXRlbXMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJzY2VuZS1taWRkbGUtbGVmdC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbignbGVmdCcpXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImVsLWljb24tYXJyb3ctbGVmdCBzY2VuZS1taWRkbGUtaWNvblwiLz5cclxuICAgICAgICA8L2VsLWJ1dHRvbj5cclxuICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICA6Y2xhc3M9XCJ7J3NjZW5lLW1pZGRsZS1idXR0b24tc2VsZWN0JzpsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPiAwfVwiXHJcbiAgICAgICAgICA6ZGlzYWJsZWQ9XCJsZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICBjbGFzcz1cInNjZW5lLW1pZGRsZS1yaWdodC1idXR0b25cIlxyXG4gICAgICAgICAgQGNsaWNrPVwiY2hhbmdlUG9zaXRvbigncmlnaHQnKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJlbC1pY29uLWFycm93LXJpZ2h0IHNjZW5lLW1pZGRsZS1pY29uXCIvPlxyXG4gICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm94XCI+XHJcbiAgICAgICAgPGZsZXhib3ggY2xhc3M9XCJzY2VuZS1saXN0LWhlYWRcIj5cclxuICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICA6aW5kZXRlcm1pbmF0ZT1cImlzcmlnaHRJbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImNoZWNrcmlnaHRBbGxcIlxyXG4gICAgICAgICAgICBAY2hhbmdlPVwiaGFuZGxlcmlnaHRDaGVja0FsbENoYW5nZVwiLz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY2VuZS1saXN0LWhlYWQtbmFtZVwiPumakOiXj+eahOagh+etvjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtaGVhZC1kZXRhaWxcIj57eyByaWdodENoZWNrSXRlbXMubGVuZ3RoICsgJy8nICsgY2hlY2tlZFJpZ2h0RGF0YS5sZW5ndGggfX08L2Rpdj5cclxuICAgICAgICA8L2ZsZXhib3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjZW5lLWxpc3QtYm9keVwiPlxyXG4gICAgICAgICAgPGRyYWdnYWJsZVxyXG4gICAgICAgICAgICB2LW1vZGVsPVwiY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgIDptb3ZlPVwicmlnaHRNb3ZlXCJcclxuICAgICAgICAgICAgOm9wdGlvbnM9XCJ7Z3JvdXA6ICdsaXN0Jyxmb3JjZUZhbGxiYWNrOmZhbHNlLCBmYWxsYmFja0NsYXNzOidkcmFnZ2luZ1N0eWxlJ31cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDEwMHB4O1wiXHJcbiAgICAgICAgICAgIEBlbmQ9XCJyaWdodE1vdmVFbmRcIj5cclxuICAgICAgICAgICAgPGZsZXhib3hcclxuICAgICAgICAgICAgICB2LWZvcj1cIihpdGVtLCBpbmRleCkgaW4gY2hlY2tlZFJpZ2h0RGF0YVwiXHJcbiAgICAgICAgICAgICAgOmtleT1cImluZGV4XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxlbC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgdi1tb2RlbD1cIml0ZW0uY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tbGVmdDo5cHg7XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1pdGVtLWNoZWNrXCJcclxuICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJyaWdodENoZWNrSXRlbUNoYW5nZVwiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9mbGV4Ym94PlxyXG4gICAgICAgICAgPC9kcmFnZ2FibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mbGV4Ym94PlxyXG4gICAgPGRpdiBjbGFzcz1cImhhbmRsZS1iYXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiaGFuZGxlLWJhci1hZGRcIlxyXG4gICAgICAgIEBjbGljaz1cImFkZEFuZEVkaXRTY2VuZSgnYWRkJyx7fSlcIj4rIOaWsOW7uuWcuuaZrzwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGFuZGxlLWJhci1zYXZlXCI+XHJcbiAgICAgICAgPGVsLWJ1dHRvbiBAY2xpY2submF0aXZlPVwiaGFuZGxlQ2FuY2VsXCI+5Y+W5raIPC9lbC1idXR0b24+XHJcbiAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgQGNsaWNrLm5hdGl2ZT1cImhhbmRsZUNvbmZpcm1cIj7kv53lrZg8L2VsLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzY2VuZS1jcmVhdGVcclxuICAgICAgOmZpZWxkLWxpc3Q9XCJmaWVsZExpc3RcIlxyXG4gICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93Q3JlYXRlU2NlbmVcIlxyXG4gICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgOm5hbWU9XCJmaWx0ZXJOYW1lXCJcclxuICAgICAgOmVkaXRfaWQ9XCJmaWx0ZXJFZGl0SWRcIlxyXG4gICAgICA6aXMtZGVmYXVsdD1cImZpbHRlckRlZmF1bHRcIlxyXG4gICAgICBAc2F2ZVN1Y2Nlc3M9XCJnZXRTY2VuZUxpc3RcIi8+XHJcbiAgPC9lbC1kaWFsb2c+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuLy8gaW1wb3J0IGNybVR5cGVNb2RlbCBmcm9tICdAL3ZpZXdzL3V4L21vZGVsL2NybVR5cGVNb2RlbCdcclxuLy8gaW1wb3J0IHtcclxuLy8gICBjcm1TY2VuZVNldEluZGV4LFxyXG4vLyAgIGNybVNjZW5lU29ydCxcclxuLy8gICBjcm1TY2VuZURlZmF1bHRzLFxyXG4vLyAgIGNybVNjZW5lRGVsZXRlLFxyXG4vLyAgIGZpbHRlckluZGV4ZmllbGRzXHJcbi8vIH0gZnJvbSAnQC9hcGkvY3VzdG9tZXJtYW5hZ2VtZW50L2NvbW1vbidcclxuaW1wb3J0IGRyYWdnYWJsZSBmcm9tICd2dWVkcmFnZ2FibGUnXHJcbmltcG9ydCBTY2VuZUNyZWF0ZSBmcm9tICcuL1NjZW5lQ3JlYXRlJyAvLyDmlrDlu7rnvJbovpHlnLrmma9cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiAnU2NlbmVTZXQnLCAvLyDlnLrmma8g6K6+572uXHJcbiAgY29tcG9uZW50czoge1xyXG4gICAgZHJhZ2dhYmxlLFxyXG4gICAgU2NlbmVDcmVhdGVcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIHR5cGU6IEJvb2xlYW4sXHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICBkZWZhdWx0OiBmYWxzZVxyXG4gICAgfSxcclxuICAgIC8qKiDmsqHmnInlgLzlsLHmmK/lhajpg6jnsbvlnosg5pyJ5YC85bCx5piv5b2T5Liq57G75Z6LICovXHJcbiAgICBjcm1UeXBlOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogJydcclxuICAgIH1cclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZWZhdWx0SWQ6ICcnLCAvLyDpu5jorqTlnLrmma9pZFxyXG4gICAgICB2aXNpYmxlOiBmYWxzZSwgLy8g5o6n5Yi25bGV56S6XHJcbiAgICAgIGlzbGVmdEluZGV0ZXJtaW5hdGU6IGZhbHNlLCAvLyDmoIfms6jlpLTpg6jmmK/lpJrpgInmoYbmlYjmnpxcclxuICAgICAgY2hlY2tsZWZ0QWxsOiBmYWxzZSwgLy8g5YWz6IGU5YWo6YCJ5pON5L2c5aSa6YCJ5qGGXHJcblxyXG4gICAgICBjaGVja2VkTGVmdERhdGE6IFtdLCAvLyDmlbDmja7mupBcclxuICAgICAgbGVmdENoZWNrSXRlbXM6IFtdLCAvLyDpgInmi6nnmoTmlbDmja7mupBcclxuXHJcbiAgICAgIGlzcmlnaHRJbmRldGVybWluYXRlOiBmYWxzZSxcclxuICAgICAgY2hlY2tyaWdodEFsbDogZmFsc2UsXHJcblxyXG4gICAgICBjaGVja2VkUmlnaHREYXRhOiBbXSxcclxuICAgICAgcmlnaHRDaGVja0l0ZW1zOiBbXSxcclxuXHJcbiAgICAgIG1vdmVJdGVtOiB7fSwgLy8g56e75Yqo5Lit55qEaXRlbVxyXG4gICAgICBoYW5kbERlZmF1bHRJdGVtOiB7fSwgLy8g6K6+572u6buY6K6k55qE5Lit6Ze0aXRlbVxyXG5cclxuICAgICAgLyoqIOa3u+WKoCDnvJbovpEg5Zy65pmvICovXHJcbiAgICAgIHNob3dDcmVhdGVTY2VuZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBmaWVsZExpc3Q6IFtdLFxyXG4gICAgICBmaWx0ZXJPYmo6IHsgZm9ybTogW10gfSwgLy8g562b6YCJ56Gu5a6a5pWw5o2uXHJcbiAgICAgIGZpbHRlck5hbWU6ICcnLFxyXG4gICAgICBmaWx0ZXJEZWZhdWx0OiBmYWxzZSxcclxuICAgICAgZmlsdGVyRWRpdElkOiAnJyAvLyDnvJbovpFpZFxyXG4gICAgfVxyXG4gIH0sXHJcbiAgY29tcHV0ZWQ6IHt9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBkaWFsb2dWaXNpYmxlOiB7XHJcbiAgICAgIGhhbmRsZXIodmFsKSB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdmFsXHJcbiAgICAgICAgaWYgKHZhbCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRTY2VuZUxpc3QoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGVlcDogdHJ1ZSxcclxuICAgICAgaW1tZWRpYXRlOiB0cnVlXHJcbiAgICB9XHJcbiAgfSxcclxuICBtb3VudGVkKCkge30sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZ2V0U2NlbmVMaXN0KCkge1xyXG4gICAgICAvLyBjcm1TY2VuZVNldEluZGV4KHtcclxuICAgICAgLy8gICB0eXBlOiBjcm1UeXBlTW9kZWxbdGhpcy5jcm1UeXBlXVxyXG4gICAgICAvLyB9KVxyXG4gICAgICAvLyAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHJlcy5kYXRhLnZhbHVlLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmNoZWNrZWRSaWdodERhdGEgPSByZXMuZGF0YS5oaWRlX3ZhbHVlLm1hcChmdW5jdGlvbihcclxuICAgICAgLy8gICAgICAgaXRlbSxcclxuICAgICAgLy8gICAgICAgaW5kZXhcclxuICAgICAgLy8gICAgICkge1xyXG4gICAgICAvLyAgICAgICBpdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB2YXIgZGVmYXVsdFNjZW5lID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKGl0ZW0sIGluZGV4KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLmlzRGVmYXVsdCA9PSAxXHJcbiAgICAgIC8vICAgICB9KVxyXG4gICAgICAvLyAgICAgLy8g5aaC5p6c5pyJ6buY6K6k5Zy65pmvXHJcbiAgICAgIC8vICAgICBpZiAoZGVmYXVsdFNjZW5lICYmIGRlZmF1bHRTY2VuZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdFNjZW5lWzBdLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOehruWumumAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDb25maXJtKCkge1xyXG4gICAgICAvLyDlpoLmnpzpgInmi6npu5jorqTnmoQg5LiN5YyF5ZCr5Zyo5bem5L6n5YiX6KGoIOmHjee9ruS4uuayoeaciem7mOiupFxyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgdmFyIGxlZnRUZW1wcyA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihpdGVtLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWQgPT0gc2VsZi5kZWZhdWx0SWRcclxuICAgICAgfSlcclxuICAgICAgaWYgKGxlZnRUZW1wcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdElkID0gJydcclxuICAgICAgfVxyXG4gICAgICAvLyBjcm1TY2VuZVNvcnQoe1xyXG4gICAgICAvLyAgIHR5cGU6IGNybVR5cGVNb2RlbFt0aGlzLmNybVR5cGVdLFxyXG4gICAgICAvLyAgIG5vSGlkZUlkczogdGhpcy5jaGVja2VkTGVmdERhdGFcclxuICAgICAgLy8gICAgIC5tYXAoZnVuY3Rpb24oaXRlbSwgaW5kZXgsIGFycmF5KSB7XHJcbiAgICAgIC8vICAgICAgIHJldHVybiBpdGVtLnNjZW5lSWRcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICAuam9pbignLCcpLFxyXG4gICAgICAvLyAgIGhpZGVJZHM6IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YVxyXG4gICAgICAvLyAgICAgLm1hcChmdW5jdGlvbihpdGVtLCBpbmRleCwgYXJyYXkpIHtcclxuICAgICAgLy8gICAgICAgcmV0dXJuIGl0ZW0uc2NlbmVJZFxyXG4gICAgICAvLyAgICAgfSlcclxuICAgICAgLy8gICAgIC5qb2luKCcsJylcclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgIC8vICAgICAgIHR5cGU6ICdzdWNjZXNzJyxcclxuICAgICAgLy8gICAgICAgbWVzc2FnZTogJ+aTjeS9nOaIkOWKnydcclxuICAgICAgLy8gICAgIH0pXHJcbiAgICAgIC8vICAgICB0aGlzLmhhbmRsZUNhbmNlbCgpXHJcbiAgICAgIC8vICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAvLyAgIH0pXHJcbiAgICAgIC8vICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDkuovpobnmk43kvZwgKi9cclxuICAgIGl0ZW1IYW5kbGUodHlwZSwgaXRlbSwgaW5kZXgpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgICAgdGhpcy5hZGRBbmRFZGl0U2NlbmUoJ2VkaXQnLCBpdGVtKVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICB0aGlzLiRjb25maXJtKCfmgqjnoa7lrpropoHliKDpmaTov5nkuIDmnaHmlbDmja7lkJc/JywgJ+aPkOekuicsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgdHlwZTogJ3dhcm5pbmcnXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgY3JtU2NlbmVEZWxldGUoe1xyXG4gICAgICAgICAgICAgIHNjZW5lSWQ6IGl0ZW0uc2NlbmVJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAn5Yig6Zmk5oiQ5YqfJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhLnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICAgICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdzYXZlLXN1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgIHR5cGU6ICdpbmZvJyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdkZWZhdWx0Jykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxEZWZhdWx0SXRlbSA9IGl0ZW1cclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZzpu5jorqQgKi9cclxuICAgIGRlZmF1bHRIYW5kbGUoKSB7XHJcbiAgICAgIGNybVNjZW5lRGVmYXVsdHMoe1xyXG4gICAgICAgIHNjZW5lSWQ6IHRoaXMuaGFuZGxEZWZhdWx0SXRlbS5zY2VuZUlkXHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4ocmVzID0+IHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICfmk43kvZzmiJDlip8nXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0SWQgPSB0aGlzLmhhbmRsRGVmYXVsdEl0ZW0uc2NlbmVJZFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxyXG4gICAgfSxcclxuICAgIC8qKiDmt7vliqDnvJbovpHlnLrmma8gKi9cclxuICAgIGFkZEFuZEVkaXRTY2VuZSh0eXBlLCBkYXRhKSB7XHJcbiAgICAgIC8vIGZpbHRlckluZGV4ZmllbGRzKHtcclxuICAgICAgLy8gICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV1cclxuICAgICAgLy8gfSlcclxuICAgICAgLy8gICAudGhlbihyZXMgPT4ge1xyXG4gICAgICAvLyAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YVxyXG4gICAgICAvLyAgICAgaWYgKHR5cGUgPT0gJ2VkaXQnKSB7XHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSwgb2JqOiBkYXRhLmRhdGEgfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck5hbWUgPSBkYXRhLm5hbWVcclxuICAgICAgLy8gICAgICAgdGhpcy5maWx0ZXJEZWZhdWx0ID0gZGF0YS5pc0RlZmF1bHQgPT0gMVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9IGRhdGEuc2NlbmVJZC50b1N0cmluZygpXHJcbiAgICAgIC8vICAgICB9IGVsc2Uge1xyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlck9iaiA9IHsgZm9ybTogW10gfVxyXG4gICAgICAvLyAgICAgICB0aGlzLmZpbHRlckVkaXRJZCA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyTmFtZSA9ICcnXHJcbiAgICAgIC8vICAgICAgIHRoaXMuZmlsdGVyRGVmYXVsdCA9IGZhbHNlXHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgICB0aGlzLnNob3dDcmVhdGVTY2VuZSA9IHRydWVcclxuICAgICAgLy8gICB9KVxyXG4gICAgICAvLyAgIC5jYXRjaCgoKSA9PiB7fSlcclxuICAgIH0sXHJcbiAgICAvKipcclxuICAgICAqIOWPlua2iOmAieaLqVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVDYW5jZWwoKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlXHJcbiAgICAgIHRoaXMuJGVtaXQoJ3VwZGF0ZTpkaWFsb2dWaXNpYmxlJywgZmFsc2UpXHJcbiAgICB9LFxyXG4gICAgLyoqIOaLluaLveaTjeS9nCAqL1xyXG4gICAgcmlnaHRNb3ZlRW5kKGV2dCkge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtLmNoZWNrID0gZmFsc2VcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICB9LFxyXG4gICAgcmlnaHRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICBsZWZ0TW92ZUVuZChldnQpIHtcclxuICAgICAgdGhpcy5tb3ZlSXRlbS5jaGVjayA9IGZhbHNlXHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1DaGFuZ2UoKVxyXG4gICAgfSxcclxuICAgIGxlZnRNb3ZlKG9iaikge1xyXG4gICAgICB0aGlzLm1vdmVJdGVtID0gb2JqLmRyYWdnZWRDb250ZXh0LmVsZW1lbnRcclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZWxlZnRDaGVja0FsbENoYW5nZSh2YWx1ZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlzbGVmdEluZGV0ZXJtaW5hdGUgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tlZExlZnREYXRhID0gdGhpcy5jaGVja2VkTGVmdERhdGEuZmlsdGVyKGZ1bmN0aW9uKFxyXG4gICAgICAgIGl0ZW0sXHJcbiAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgYXJyYXlcclxuICAgICAgKSB7XHJcbiAgICAgICAgaXRlbS5jaGVjayA9IHZhbHVlXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IHZhbHVlID8gdGhpcy5jaGVja2VkTGVmdERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIGxlZnRDaGVja0l0ZW1DaGFuZ2UoKSB7XHJcbiAgICAgIHRoaXMubGVmdENoZWNrSXRlbXMgPSB0aGlzLmNoZWNrZWRMZWZ0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLmxlZnRDaGVja0l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy5sZWZ0Q2hlY2tJdGVtcy5sZW5ndGggPT0gdGhpcy5jaGVja2VkTGVmdERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IHRydWVcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsZWZ0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IHRydWVcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja2xlZnRBbGwgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuaXNsZWZ0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDpgInmi6nlhajpg6hcclxuICAgIGhhbmRsZXJpZ2h0Q2hlY2tBbGxDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja2VkUmlnaHREYXRhID0gdGhpcy5jaGVja2VkUmlnaHREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICBpdGVtLFxyXG4gICAgICAgIGluZGV4LFxyXG4gICAgICAgIGFycmF5XHJcbiAgICAgICkge1xyXG4gICAgICAgIGl0ZW0uY2hlY2sgPSB2YWx1ZVxyXG4gICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMucmlnaHRDaGVja0l0ZW1zID0gdmFsdWUgPyB0aGlzLmNoZWNrZWRSaWdodERhdGEgOiBbXVxyXG4gICAgfSxcclxuICAgIHJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKCkge1xyXG4gICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgaXRlbSxcclxuICAgICAgICBpbmRleCxcclxuICAgICAgICBhcnJheVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gaXRlbS5jaGVjayA9PSB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICh0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmlnaHRDaGVja0l0ZW1zLmxlbmd0aCA9PSB0aGlzLmNoZWNrZWRSaWdodERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrcmlnaHRBbGwgPSB0cnVlXHJcbiAgICAgICAgICB0aGlzLmlzcmlnaHRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuICAgICAgICAgIHRoaXMuaXNyaWdodEluZGV0ZXJtaW5hdGUgPSB0cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hlY2tyaWdodEFsbCA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvLyDmjInpkq7mk43kvZxcclxuICAgIGNoYW5nZVBvc2l0b24odHlwZSkge1xyXG4gICAgICB2YXIgc2VsZiA9IHRoaXNcclxuICAgICAgLy8g5LuO5Y+z5b6A5bemXHJcbiAgICAgIGlmICh0eXBlID09ICdsZWZ0Jykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tlZFJpZ2h0RGF0YSA9IHRoaXMuY2hlY2tlZFJpZ2h0RGF0YS5maWx0ZXIoZnVuY3Rpb24oXHJcbiAgICAgICAgICBpdGVtLFxyXG4gICAgICAgICAgaW5kZXgsXHJcbiAgICAgICAgICBhcnJheVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdmFyIHJlbW92ZSA9IGZhbHNlXHJcbiAgICAgICAgICBzZWxmLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICAgIGlmIChpdGVtLnNjZW5lSWQgPT0gZWxlbWVudC5zY2VuZUlkKSB7XHJcbiAgICAgICAgICAgICAgcmVtb3ZlID0gdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuICFyZW1vdmVcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZExlZnREYXRhLnB1c2goZWxlbWVudClcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc3JpZ2h0SW5kZXRlcm1pbmF0ZSA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jaGVja3JpZ2h0QWxsID0gZmFsc2VcclxuXHJcbiAgICAgICAgLy8g5Yi35paw5bem5L6n5pWI5p6cXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgICB0aGlzLnJpZ2h0Q2hlY2tJdGVtQ2hhbmdlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrZWRMZWZ0RGF0YSA9IHRoaXMuY2hlY2tlZExlZnREYXRhLmZpbHRlcihmdW5jdGlvbihcclxuICAgICAgICAgIGl0ZW0sXHJcbiAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgIGFycmF5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB2YXIgcmVtb3ZlID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYubGVmdENoZWNrSXRlbXMuZm9yRWFjaChmdW5jdGlvbihlbGVtZW50LCBpbmRleCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5zY2VuZUlkID09IGVsZW1lbnQuc2NlbmVJZCkge1xyXG4gICAgICAgICAgICAgIHJlbW92ZSA9IHRydWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHJldHVybiAhcmVtb3ZlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKGVsZW1lbnQsIGluZGV4KSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrID0gZmFsc2VcclxuICAgICAgICAgIHNlbGYuY2hlY2tlZFJpZ2h0RGF0YS5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgdGhpcy5sZWZ0Q2hlY2tJdGVtcyA9IFtdXHJcbiAgICAgICAgdGhpcy5pc2xlZnRJbmRldGVybWluYXRlID0gZmFsc2VcclxuICAgICAgICB0aGlzLmNoZWNrbGVmdEFsbCA9IGZhbHNlXHJcblxyXG4gICAgICAgIC8vIOWIt+aWsOWPs+S+p+aViOaenFxyXG4gICAgICAgIHRoaXMubGVmdENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgICAgdGhpcy5yaWdodENoZWNrSXRlbUNoYW5nZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSByZWw9XCJzdHlsZXNoZWV0L3Njc3NcIiBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuLnNjZW5lLW5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG4gIGNvbG9yOiAjYWFhO1xyXG59XHJcblxyXG4uZGVmYXVsdC1tYXJrIHtcclxuICB3aWR0aDogNHB4O1xyXG4gIGhlaWdodDogNHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDJweDtcclxuICBtYXJnaW4tcmlnaHQ6IDVweDtcclxufVxyXG4uZGVmYXVsdC1tYXJrLWFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjojM0U4NEU5O1xyXG59XHJcblxyXG4uc2NlbmUtbGlzdCB7XHJcbiAgLnNjZW5lLWxpc3QtYm94IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjM0U4NEU5O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xyXG4gICAgaGVpZ2h0OiAzMDBweDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgfVxyXG4gIC5zY2VuZS1taWRkbGUtbGlzdCB7XHJcbiAgICB3aWR0aDogNTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGJ1dHRvbiB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XHJcbiAgICAgIHdpZHRoOiAzNHB4O1xyXG4gICAgICBoZWlnaHQ6IDM0cHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE3cHg7XHJcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY3ZmE7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICBjb2xvcjogI2NjY2NjYztcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgfVxyXG4gICAgLnNjZW5lLW1pZGRsZS1sZWZ0LWJ1dHRvbiB7XHJcbiAgICB9XHJcbiAgICAuc2NlbmUtbWlkZGxlLXJpZ2h0LWJ1dHRvbiB7XHJcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1taWRkbGUtYnV0dG9uLXNlbGVjdCB7XHJcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzRTg0RTkgIWltcG9ydGFudDtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzNFODRFOSAhaW1wb3J0YW50O1xyXG4gICAgICAuc2NlbmUtbWlkZGxlLWljb24ge1xyXG4gICAgICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWhlYWQge1xyXG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDlweDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgIzNFODRFOTtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIC5zY2VuZS1saXN0LWhlYWQtbmFtZSB7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zY2VuZS1saXN0LWhlYWQtZGV0YWlsIHtcclxuICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5zY2VuZS1saXN0LWJvZHkge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBoZWlnaHQ6IDI0MHB4O1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuICB9XHJcblxyXG4gIC5saXN0LWl0ZW0ge1xyXG4gICAgcGFkZGluZzogNXB4IDA7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAubGlzdC1pdGVtLWNoZWNrIHtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbiAgICB9XHJcbiAgICAubGlzdC1pdGVtLW5hbWUge1xyXG4gICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgIGNvbG9yOiAjMzMzO1xyXG4gICAgICBmbGV4OiAxO1xyXG4gICAgfVxyXG4gICAgLmxpc3QtaXRlbS1oYW5kbGUge1xyXG4gICAgICBmbGV4LXNocmluazogMDtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgICAgaSB7XHJcbiAgICAgICAgY29sb3I6ICNhYWE7XHJcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gICAgICB9XHJcbiAgICAgIGk6aG92ZXIge1xyXG4gICAgICAgIGNvbG9yOiAjM0U4NEU5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAubGlzdC1pdGVtOmhvdmVyIHtcclxuICAgIC5saXN0LWl0ZW0taGFuZGxlIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4uaGFuZGxlLWJhciB7XHJcbiAgZm9udC1zaXplOiAxMnB4O1xyXG4gIC5oYW5kbGUtYmFyLWFkZCB7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBjb2xvcjogIzNlODRlOTtcclxuICAgIHBhZGRpbmc6IDIwcHggMTBweDtcclxuICB9XHJcbiAgLmhhbmRsZS1iYXItc2F2ZSB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBidXR0b24ge1xyXG4gICAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zdHlsZT5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjA2MzYwNmEmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9TY2VuZVNldC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vU2NlbmVTZXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA2MzYwNmEmcmVsPXN0eWxlc2hlZXQlMkZzY3NzJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiMjA2MzYwNmFcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCI8dGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxmbGV4Ym94IHYtc2hvdz1cInNlbGVjdGlvbkxpc3QubGVuZ3RoID09IDBcIiBjbGFzcz1cInRoLWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0tIDxkaXYgdi1pZj1cIiFpc1NlYXNcIj7lnLrmma/vvJo8L2Rpdj5cclxuICAgICAgPGRpdiBAY2xpY2s9XCJnZXRBbGxDbGlja1wiIGNsYXNzPVwiY29uZGl0aW9uX3RpdGxlXCI+XHJcbiAgICAgICAge3sgc2NlbmVEYXRhLm5hbWUgfHwgZ2V0RGVmYXVsdFNjZW5lTmFtZSgpIH19XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIDpzdHlsZT1cInsgJ21hcmdpbi1sZWZ0JzogaXNTZWFzID8gMCA6ICczMHB4JyB9XCJcclxuICAgICAgICBjbGFzcz1cImMtZmlsdHJhdGVcIlxyXG4gICAgICAgIHNyYz1cIkAvYXNzZXRzL2ltZy9jX2ZpbHRyYXRlLnBuZ1wiXHJcbiAgICAgICAgQGNsaWNrPVwic2hvd0ZpbHRlckNsaWNrXCJcclxuICAgICAgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbmRpdGlvbl90aXRsZVwiIEBjbGljaz1cInNob3dGaWx0ZXJDbGlja1wiPumrmOe6p+etm+mAiTwvZGl2PlxyXG4gICAgICA8ZmlsdGVyLWZvcm1cclxuICAgICAgICA6ZmllbGQtbGlzdD1cImZpZWxkTGlzdFwiXHJcbiAgICAgICAgOmRpYWxvZy12aXNpYmxlLnN5bmM9XCJzaG93RmlsdGVyXCJcclxuICAgICAgICA6b2JqPVwiZmlsdGVyT2JqXCJcclxuICAgICAgICA6Y3JtLXR5cGU9XCJjcm1UeXBlXCJcclxuICAgICAgICA6aXMtc2Vhcz1cImlzU2Vhc1wiXHJcbiAgICAgICAgQGZpbHRlcj1cImhhbmRsZUZpbHRlclwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2ZsZXhib3g+XHJcblxyXG4gICAgPHNjZW5lLXNldFxyXG4gICAgICA6ZGlhbG9nLXZpc2libGUuc3luYz1cInNob3dTY2VuZVNldFwiXHJcbiAgICAgIDpjcm0tdHlwZT1cImNybVR5cGVcIlxyXG4gICAgICBAc2F2ZS1zdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgICA8c2NlbmUtY3JlYXRlXHJcbiAgICAgIDpmaWVsZC1saXN0PVwiZmllbGRMaXN0XCJcclxuICAgICAgOmNybS10eXBlPVwiY3JtVHlwZVwiXHJcbiAgICAgIDpkaWFsb2ctdmlzaWJsZS5zeW5jPVwic2hvd1NjZW5lQ3JlYXRlXCJcclxuICAgICAgOm9iaj1cInNjZW5lRmlsdGVyT2JqXCJcclxuICAgICAgQHNhdmVTdWNjZXNzPVwidXBkYXRlU2NlbmVMaXN0XCJcclxuICAgIC8+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj5cclxuaW1wb3J0IHsgbWFwR2V0dGVycyB9IGZyb20gXCJ2dWV4XCI7XHJcbmltcG9ydCBjcm1UeXBlTW9kZWwgZnJvbSBcIkAvdmlld3MvdXgvbW9kZWwvY3JtVHlwZU1vZGVsXCI7XHJcbi8v6I635Y+W6KGo5qC85YiXXHJcbmltcG9ydCB7XHJcbiAgZmlsdGVySW5kZXhmaWVsZHMsXHJcbiAgLy8gY3JtU2NlbmVTYXZlXHJcbn0gZnJvbSBcIkAvYXBpL3V4L2NvbW1vblwiO1xyXG5cclxuaW1wb3J0IGZpbHRlckZvcm0gZnJvbSBcIi4vZmlsdGVyRm9ybVwiO1xyXG5pbXBvcnQgZmlsdGVyQ29udGVudCBmcm9tIFwiLi9maWx0ZXJGb3JtL2ZpbHRlckNvbnRlbnRcIjtcclxuaW1wb3J0IFNjZW5lU2V0IGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZVNldFwiOyAvLyDlnLrmma/orr7nva5cclxuaW1wb3J0IFNjZW5lQ3JlYXRlIGZyb20gXCIuL3NjZW5lRm9ybS9TY2VuZUNyZWF0ZVwiO1xyXG5pbXBvcnQgZGF0YSBmcm9tIFwiLi4vLi4vLi4vLi4vc3RhdGljL3RhYmxlRmllbGRGb3JTZWFyY2hcIjtcclxuaW1wb3J0IGNybXR5cGVzIGZyb20gXCIuLi8uLi8uLi8uLi9zdGF0aWMvY3JtVHlwZXNcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBuYW1lOiBcIkNSTVRhYmxlSGVhZFwiLCAvLyDlrqLmiLfnrqHnkIbkuIsg6YeN6KaB5o+Q6YaSIOWbnuasvuiuoeWIkuaPkOmGklxyXG4gIGNvbXBvbmVudHM6IHtcclxuICAgIGZpbHRlckZvcm0sXHJcbiAgICBmaWx0ZXJDb250ZW50LFxyXG4gICAgU2NlbmVDcmVhdGUsXHJcbiAgICBTY2VuZVNldCxcclxuICB9LFxyXG4gIHByb3BzOiB7XHJcbiAgICB0aXRsZToge1xyXG4gICAgICB0eXBlOiBTdHJpbmcsXHJcbiAgICAgIGRlZmF1bHQ6IFwiXCIsXHJcbiAgICB9LFxyXG4gICAgLyoqIOayoeacieWAvOWwseaYr+WFqOmDqOexu+WeiyDmnInlgLzlsLHmmK/lvZPkuKrnsbvlnosgKi9cclxuICAgIGNybVR5cGU6IHtcclxuICAgICAgdHlwZTogU3RyaW5nLFxyXG4gICAgICBkZWZhdWx0OiBcIlwiLFxyXG4gICAgfSxcclxuICAgIC8vIOi+heWKqSDkvb/nlKgg5YWs5rW35rKh5pyJ5Zy65pmvXHJcbiAgICBpc1NlYXM6IHtcclxuICAgICAgdHlwZTogQm9vbGVhbixcclxuICAgICAgZGVmYXVsdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gICAgLy/niLZJRCzkuLvopoHnlKjkuo7mibnph4/liKDpmaRcclxuICAgIHBhcmVudElEOiB7XHJcbiAgICAgIHR5cGU6IFN0cmluZyxcclxuICAgICAgZGVmYXVsdDogXCJcIixcclxuICAgIH0sXHJcbiAgfSxcclxuICBkYXRhKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgc2NlbmVUeXBlczogW1xyXG4gICAgICAgIHsgdHlwZTogXCJlbnRlclwiLCBuYW1lOiBcIuaIkei0n+i0o+eahFwiIH0sXHJcbiAgICAgICAgeyB0eXBlOiBcIm91dFwiLCBuYW1lOiBcIuaIkVwiIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHNjZW5lVHlwZTogbnVsbCxcclxuICAgICAgc2hvd1NjZW5lOiBmYWxzZSwgLy8g5Zy65pmv5pON5L2cXHJcbiAgICAgIHNob3dGaWx0ZXI6IGZhbHNlLCAvLyDmjqfliLbnrZvpgInmoYZcclxuICAgICAgZmllbGRMaXN0OiBbXSxcclxuICAgICAgZmlsdGVyT2JqOiB7IGZvcm06IFtdIH0sIC8vIOetm+mAieehruWumuaVsOaNrlxyXG5cclxuICAgICAgc2NlbmVEYXRhOiB7IGlkOiBcIlwiLCBieWRhdGE6IFwiXCIsIG5hbWU6IFwiXCIgfSxcclxuICAgICAgc2hvd1NjZW5lU2V0OiBmYWxzZSwgLy8g5bGV56S65Zy65pmv6K6+572uXHJcbiAgICAgIHNob3dTY2VuZUNyZWF0ZTogZmFsc2UsIC8vIOWxleekuuWcuuaZr+a3u+WKoFxyXG4gICAgICBzY2VuZUZpbHRlck9iajogeyBmb3JtOiBbXSB9LCAvLyDnrZvpgInnoa7lrprmlbDmja5cclxuXHJcbiAgICAgIC8qKiDli77pgInmk43kvZzmlbDmja4gKi9cclxuICAgICAgc2VsZWN0aW9uTGlzdDogW10sXHJcbiAgICAgIHRyYW5zZmVyRGlhbG9nU2hvdzogZmFsc2UsXHJcbiAgICAgIHRlYW1zRGlhbG9nU2hvdzogZmFsc2UsIC8vIOWboumYn+aTjeS9nOaPkOekuuahhlxyXG4gICAgICB0ZWFtc1RpdGxlOiBcIlwiLCAvLyDlm6LpmJ/mk43kvZzmoIfpopjlkI1cclxuICAgICAgYWxsb2NEaWFsb2dTaG93OiBmYWxzZSwgLy8g5YWs5rW35YiG6YWN5pON5L2c5o+Q56S65qGGXHJcbiAgICAgIGRlYWxTdGF0dXNTaG93OiBmYWxzZSwgLy8g5oiQ5Lqk54q25oCB5L+u5pS55qGGXHJcbiAgICAgIGNybVR5cGVzOiB7fSxcclxuICAgIH07XHJcbiAgfSxcclxuICBjb21wdXRlZDoge30sXHJcbiAgd2F0Y2g6IHt9LFxyXG4gIG1vdW50ZWQoKSB7fSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvKiog5Y+R5biDIOaXtuWAmeeahOexu+Wei+mAieaLqSAqL1xyXG4gICAgaGFuZGxlVHlwZURyb3AoY29tbWFuZCkge1xyXG4gICAgICB0aGlzLnNjZW5lVHlwZSA9IGNvbW1hbmQ7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouWFqOmDqCAqL1xyXG4gICAgZ2V0QWxsQ2xpY2soKSB7XHJcbiAgICAgIC8v5riF56m65pCc57Si5p2h5Lu2XHJcbiAgICAgIHRoaXMuZmlsdGVyT2JqID0geyBmb3JtOiBbXSB9O1xyXG4gICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgfSxcclxuICAgIC8qKiDlsZXnpLrpq5jnuqfnrZvpgIkgKi9cclxuICAgIHNob3dGaWx0ZXJDbGljaygpIHtcclxuICAgICAgdGhpcy5nZXRGaWx0ZXJGaWVsZEluZm8oKTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpq5jnuqfnrZvpgInlrZfmrrXmlbDmja5cclxuICAgIGdldEZpbHRlckZpZWxkSW5mbygpIHtcclxuICAgICAgdGhpcy5maWVsZExpc3QgPSBkYXRhW3RoaXMuY3JtVHlwZV0uZGF0YTtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVGaWx0ZXIoZm9ybSkge1xyXG4gICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKGZvcm0gPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLiRlbWl0KFwiZmlsdGVyXCIsIG51bGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT2JqID0gZm9ybTtcclxuICAgICAgICB0aGlzLnNob3dGaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZm9ybS5zYXZlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgY3JtU2NlbmVTYXZlKHtcclxuICAgICAgICAgICAgdHlwZTogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgICAgIGlzRGVmYXVsdDogZm9ybS5zYXZlRGVmYXVsdCA/IDEgOiAwLFxyXG4gICAgICAgICAgICBuYW1lOiBmb3JtLnNhdmVOYW1lLFxyXG4gICAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShmb3JtLm9iaiksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2VuZUxpc3QoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy4kZW1pdChcImZpbHRlclwiLCBmb3JtLm9iaik7XHJcbiAgICAgICAgLy90aGlzLiRlbWl0KCdmaWx0ZXInLCBmb3JtLmZvcm0pXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+a4heepuuadoeS7tlxyXG4gICAgaGFuZGxlQ2xlYXJGaWVsZCgpIHtcclxuICAgICAgdGhpcy5maWx0ZXJPYmogPSBkYXRhLm9iajtcclxuICAgIH0sXHJcbiAgICAvLyDlnLrmma/mk43kvZxcclxuICAgIC8qKiDpgInmi6nkuoblnLrmma8gKi9cclxuICAgIHNjZW5lU2VsZWN0KGRhdGEpIHtcclxuICAgICAgdGhpcy5zY2VuZURhdGEgPSBkYXRhO1xyXG4gICAgICB0aGlzLiRlbWl0KFwic2NlbmVcIiwgZGF0YSk7XHJcbiAgICB9LFxyXG4gICAgc2NlbmVIYW5kbGUoZGF0YSkge1xyXG4gICAgICBpZiAoZGF0YS50eXBlID09IFwic2V0XCIpIHtcclxuICAgICAgICB0aGlzLnNob3dTY2VuZVNldCA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09IFwiYWRkXCIpIHtcclxuICAgICAgICBmaWx0ZXJJbmRleGZpZWxkcyh7XHJcbiAgICAgICAgICBsYWJlbDogY3JtVHlwZU1vZGVsW3RoaXMuY3JtVHlwZV0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWVsZExpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2NlbmVDcmVhdGUgPSB0cnVlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvKiogIOWIm+W7uuS/neWtmOaIkOWKnyAqL1xyXG4gICAgdXBkYXRlU2NlbmVMaXN0KCkge1xyXG4gICAgICB0aGlzLiRyZWZzLnNjZW5lTGlzdC5nZXRTY2VuZUxpc3QoKTtcclxuICAgIH0sXHJcbiAgICAvKiog5Yu+6YCJ5ZCO55qE6KGo5aS05pON5L2cICovXHJcbiAgICBoZWFkU2VsZWN0aW9uQ2hhbmdlKGFycmF5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlzdCA9IGFycmF5O1xyXG4gICAgfSxcclxuICAgIC8qKiDmk43kvZwgKi9cclxuICAgIHNlbGVjdGlvbkJhckNsaWNrKHR5cGUpIHtcclxuICAgICAgdmFyIG1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgICBpZiAodHlwZSA9PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IFwi56Gu5a6a6KaB5a+85Ye66L+Z5Lqb5pWw5o2u5ZibP1wiO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIG1lc3NhZ2UgPSBcIuehruWumuimgeWIoOmZpOi/meS6m+aVsOaNruWYmz9cIjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRjb25maXJtKG1lc3NhZ2UsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogXCLnoa7lrppcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICB9KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY29uZmlybUhhbmRsZSh0eXBlKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgdHlwZTogXCJpbmZvXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi5bey5Y+W5raI5pON5L2cXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgY29uZmlybUhhbmRsZSh0eXBlKSB7XHJcbiAgICAgIGlmICh0eXBlID09PSBcImV4cG9ydFwiKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFeHBvcnQoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIGhhbmRsZUV4cG9ydCgpIHtcclxuICAgICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICAgIHBhcmFtc1tcImlkc1wiXSA9IHRoaXMuc2VsZWN0aW9uTGlzdFxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMuY3JtVHlwZSArIFwiSWRcIl07XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbihcIixcIik7XHJcbiAgICAgIHBhcmFtcy5fX2V4cG9ydCA9IHRydWU7XHJcbiAgICAgIHRoaXMuJGVtaXQoXCJleHBvcnREYXRhXCIsIHBhcmFtcyk7XHJcbiAgICB9LFxyXG5cclxuICAgIGRlbGV0ZUl0ZW1zQ2FsbEJhY2soKSB7XHJcbiAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgIG1lc3NhZ2U6IFwi5Yig6Zmk5oiQ5YqfXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLiRlbWl0KFwiaGFuZGxlXCIsIHsgdHlwZTogXCJkZWxldGVcIiB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog6I635Y+W5bGV56S6aXRlbXMgKi9cclxuICAgIGdldFNlbGVjdGlvbkhhbmRsZUl0ZW1zSW5mbygpIHtcclxuICAgICAgY29uc3QgaGFuZGxlSW5mb3MgPSB7XHJcbiAgICAgICAgZXhwb3J0OiB7XHJcbiAgICAgICAgICBuYW1lOiBcIuWvvOWHuumAieS4rVwiLFxyXG4gICAgICAgICAgdHlwZTogXCJleHBvcnRcIixcclxuICAgICAgICAgIGljb246IHJlcXVpcmUoXCJAL2Fzc2V0cy9pbWcvc2VsZWN0aW9uX2V4cG9ydC5wbmdcIiksXHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZWxldGU6IHtcclxuICAgICAgICAgIG5hbWU6IFwi5om56YeP5Yig6ZmkXCIsXHJcbiAgICAgICAgICB0eXBlOiBcImRlbGV0ZVwiLFxyXG4gICAgICAgICAgaWNvbjogcmVxdWlyZShcIkAvYXNzZXRzL2ltZy9zZWxlY3Rpb25fZGVsZXRlLnBuZ1wiKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIFtcImV4cG9ydFwiLCBcImRlbGV0ZVwiXSk7XHJcbiAgICB9LFxyXG4gICAgZm9yU2VsZWN0aW9uSGFuZGxlSXRlbXMoaGFuZGxlSW5mb3MsIGFycmF5KSB7XHJcbiAgICAgIHZhciB0ZW1wc0hhbmRsZXMgPSBbXTtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGFycmF5Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHRlbXBzSGFuZGxlcy5wdXNoKGhhbmRsZUluZm9zW2FycmF5W2luZGV4XV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wc0hhbmRsZXM7XHJcbiAgICB9LFxyXG4gICAgLy8g5Yik5pat5piv5ZCm5bGV56S6XHJcbiAgICB3aGV0aGVyVHlwZVNob3dCeVBlcm1pc2lvbjogZnVuY3Rpb24gKHR5cGUpIHtcclxuICAgICAgaWYgKHR5cGUgPT0gXCJ0cmFuc2ZlclwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmZXI7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcInRyYW5zZm9ybVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NlbmVEYXRhLmJ5ZGF0YSA9PSBcInRyYW5zZm9ybVwiXHJcbiAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICA6IHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0udHJhbnNmb3JtO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJleHBvcnRcIikge1xyXG4gICAgICAgIGlmICh0aGlzLmlzU2Vhcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wuZXhjZWxleHBvcnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmV4Y2VsZXhwb3J0O1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkZWxldGVcIikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlbGV0ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwicHV0X3NlYXNcIikge1xyXG4gICAgICAgIC8vIOaUvuWFpeWFrOa1tyjlrqLmiLcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0ucHV0aW5wb29sO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJsb2NrXCIgfHwgdHlwZSA9PSBcInVubG9ja1wiKSB7XHJcbiAgICAgICAgLy8g6ZSB5a6a6Kej6ZSBKOWuouaItylcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgdGhpcy5jcm1bdGhpcy5jcm1UeXBlXS5sb2NrICYmIHRoaXMuQ1JNQ29uZmlnLmN1c3RvbWVyQ29uZmlnID09IDFcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhZGRfdXNlclwiIHx8IHR5cGUgPT0gXCJkZWxldGVfdXNlclwiKSB7XHJcbiAgICAgICAgLy8g5re75YqgIOenu+mZpOWboumYn+aIkOWRmFxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnRlYW1zYXZlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJhbGxvY1wiKSB7XHJcbiAgICAgICAgLy8g5YiG6YWNKOWFrOa1tylcclxuICAgICAgICByZXR1cm4gdGhpcy5jcm0ucG9vbC5kaXN0cmlidXRlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJnZXRcIikge1xyXG4gICAgICAgIC8vIOmihuWPlijlhazmtbcpXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtLnBvb2wucmVjZWl2ZTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwic3RhcnRcIikge1xyXG4gICAgICAgIC8vIOS4iuaetiDkuIvmnrYo5Lqn5ZOBKVxyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnNlbGVjdGlvbkxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5zZWxlY3Rpb25MaXN0W2luZGV4XTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LuaYr+WQpuS4iuS4i+aetiA9PSBcIuS4iuaetlwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JtW3RoaXMuY3JtVHlwZV0uc3RhdHVzO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJkaXNhYmxlXCIpIHtcclxuICAgICAgICAvLyDkuIrmnrYg5LiL5p62KOS6p+WTgSlcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5zZWxlY3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuc2VsZWN0aW9uTGlzdFtpbmRleF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC7mmK/lkKbkuIrkuIvmnrYgPT0gXCLkuIvmnrZcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLnN0YXR1cztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiZGVhbF9zdGF0dXNcIikge1xyXG4gICAgICAgIC8vIOWuouaIt+eKtuaAgeS/ruaUuVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNybVt0aGlzLmNybVR5cGVdLmRlYWxTdGF0dXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy8g5a2Q57uE5Lu2IOWbnuiwg+eahCDnu5PmnpxcclxuICAgIGhhbmRsZUNhbGxCYWNrKGRhdGEpIHtcclxuICAgICAgdGhpcy4kZW1pdChcImhhbmRsZVwiLCB7IHR5cGU6IGRhdGEudHlwZSB9KTtcclxuICAgIH0sXHJcbiAgICAvLyDojrflj5bpu5jorqTlnLrmma/lkI3lrZdcclxuICAgIGdldERlZmF1bHRTY2VuZU5hbWUoKSB7XHJcbiAgICAgIC8vYWRkLeWcuuaZr1xyXG4gICAgICB0aGlzLmNybVR5cGVzID0gY3JtdHlwZXM7XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5jcm1UeXBlc1t0aGlzLmNybVR5cGVdO1xyXG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0aGlzLmNybVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwi5YWo6YOoXCIgKyB0eXBlLm5hbWU7XHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSxcclxufTtcclxuPC9zY3JpcHQ+XHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy94ci10aGVtZVwiO1xyXG4udGgtY29udGFpbmVyIHtcclxuICBmb250LXNpemU6IDEzcHg7XHJcbiAgaGVpZ2h0OiA1MHB4O1xyXG4gIHBhZGRpbmc6IDAgMjBweDtcclxufVxyXG4vKiog5Zy65pmv5ZKM562b6YCJICovXHJcbi5jb25kaXRpb25fdGl0bGUge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG4uY29uZGl0aW9uX3RpdGxlOmhvdmVyIHtcclxuICBjb2xvcjogJHhyLWNvbG9yLXByaW1hcnk7XHJcbn1cclxuXHJcbi5tLWFycm93IHtcclxuICBtYXJnaW46IDAgOHB4O1xyXG59XHJcbi5jLWZpbHRyYXRlIHtcclxuICBtYXJnaW46IDAgMTBweCAwIDMwcHg7XHJcbiAgd2lkdGg6IDEycHg7XHJcbn1cclxuXHJcbi8qKiDli77pgInmk43kvZwgKi9cclxuLnNlbGVjdGlvbi1iYXIge1xyXG4gIGZvbnQtc2l6ZTogMTJweDtcclxuICBoZWlnaHQ6IDUwcHg7XHJcbiAgcGFkZGluZzogMCAyMHB4O1xyXG4gIGNvbG9yOiAjNzc3O1xyXG5cclxuICAuc2VsZWN0ZWTigJR0aXRsZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XHJcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkLS10YWJsZS1ib3JkZXItY29sb3I7XHJcbiAgICAuc2VsZWN0ZWTigJRjb3VudCB7XHJcbiAgICAgIGNvbG9yOiAkeHItY29sb3ItcHJpbWFyeTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi5zZWxlY3Rpb24taXRlbXMtYm94IHtcclxuICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAuc2VsZWN0aW9uLWl0ZW0ge1xyXG4gICAgd2lkdGg6IGF1dG87XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAuc2VsZWN0aW9uLWl0ZW0taWNvbiB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgICAgd2lkdGg6IDE1cHg7XHJcbiAgICAgIGhlaWdodDogMTVweDtcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lIHtcclxuICAgICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgICBjb2xvcjogIzc3NztcclxuICAgIH1cclxuICAgIC5zZWxlY3Rpb24taXRlbS1uYW1lOmhvdmVyIHtcclxuICAgICAgY29sb3I6ICR4ci1jb2xvci1wcmltYXJ5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG48L3N0eWxlPlxyXG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vQ1JNVGFibGVIZWFkLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1hMzk5YjliYyZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9DUk1UYWJsZUhlYWQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBcImEzOTliOWJjXCIsXG4gIG51bGxcbiAgXG4pXG5cbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///8bf0\n')},"96e9":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6a8e");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_filterContent_vue_vue_type_style_index_0_id_38580f22_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9maWx0ZXJDb250ZW50LnZ1ZT9jYzU0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiI5NmU5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2ZpbHRlckNvbnRlbnQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9Mzg1ODBmMjImc2NvcGVkPXRydWUmbGFuZz1zY3NzJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///96e9\n')},a02d:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT81ZjFjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImEwMmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a02d\n")},a362:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3RjgyMTcwRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3RjgyMTcxRTJGRDExRTg4RUUzREFEQjhBODM5MTJDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjdGODIxNkVFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjdGODIxNkZFMkZEMTFFODhFRTNEQURCOEE4MzkxMkMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6akrC8AAABlklEQVR42qyTSyiEURTHfzPfPIxH5DEmI1JTsqBGWCCPpsjCUrHySCZFWVtb2rDBgthYkMJOMV6jRoqyVKOR1chrQ5kxM+43g5nJmBf/ut/97rnf+X3nnnOuItAzdAw0k4QCfj/UVc3dbdsmxNLzZVcmCwhCvF4UWbrRwu72abHUREKSlt8b+rmUnTkeCUoJIsvnvg+DOppWZJAqFYBCpcJz4OD99QVJo0Wdm9crzCO/RzLYB4sz0Nr4bVKqNWjyC9AZSoKzlKGTzW+xITqx2Sbyvb4FlpZwJJIUdFRl5wSHUquVzZ7YEJ9P8N/AXA3nlwmPGRviEVWwifYx18DZRVxAcakxTnWunKHZVJFmJLK6LGA/hQGR4KLCNCAVZWKUw/wyHDtgwgpZmWDQQ6XpZ+nF3QlEWdRqGBuGMiM8PIUc9Z+RBMSnThdMTkW3TxSgoRas/aH3vSNw3YL7Dh6fobsT6s2wtpkgkqVZ0c/ihKsbsLOfdCNH52RB5OD6BnYPU7pPP3OSuhRK/kH/BrH/wf9EfnwIMADZRWDI2ca9wQAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmc/ZTdlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYTM2Mi5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZM1JqZ3lNVGN3UlRKR1JERXhSVGc0UlVVelJFRkVRamhCT0RNNU1USkRJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalkzUmpneU1UY3hSVEpHUkRFeFJUZzRSVVV6UkVGRVFqaEJPRE01TVRKRElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOamRHT0RJeE5rVkZNa1pFTVRGRk9EaEZSVE5FUVVSQ09FRTRNemt4TWtNaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qZEdPREl4TmtaRk1rWkVNVEZGT0RoRlJUTkVRVVJDT0VFNE16a3hNa01pTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2YWtyQzhBQUFCbGtsRVFWUjQycXlUU3lpRVVSVEhmelBmUEl4SDVERW1JMUpUc3FCR1dDQ1Bwc2pDVXJIeVNDWkZXVnRiMnJEQmd0aFlrTUpPTVY2alJvcXlWS09SMWNoclE1a3hNKzQzZzVuSm1CZi91dC85N3JuZitYM25ubk91SXRBemRBdzBrNFFDZmovVVZjM2RiZHNteE5MelpWY21Dd2hDdkY0VVdiclJ3dTcyYWJIVVJFS1NsdDhiK3JtVW5Ua2VDVW9KSXN2bnZnK0RPcHBXWkpBcUZZQkNwY0p6NE9EOTlRVkpvMFdkbTljcnpDTy9SekxZQjRzejBOcjRiVktxTldqeUM5QVpTb0t6bEtHVHpXK3hJVHF4MlNieXZiNEZscFp3SkpJVWRGUmw1d1NIVXF1VnpaN1lFSjlQOE4vQVhBM25sd21QR1J2aUVWV3dpZll4MThEWlJWeEFjYWt4VG5XdW5LSFpWSkZtSkxLNkxHQS9oUUdSNEtMQ05DQVZaV0tVdy93eUhEdGd3Z3BabVdEUVE2WHBaK25GM1FsRVdkUnFHQnVHTWlNOFBJVWM5WitSQk1TblRoZE1Ua1czVHhTZ29SYXMvYUgzdlNOdzNZTDdEaDZmb2JzVDZzMnd0cGtna3FWWjBjL2loS3Nic0xPZmRDTkg1MlJCNU9ENkJuWVBVN3BQUDNPU3VoUksva0gvQnJIL3dmOUVmbndJTUFEWlJXREkyY2E5d1FBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///a362\n')},a611:function(module,__webpack_exports__,__webpack_require__){"use strict";eval("/* unused harmony export parseTime */\n/* unused harmony export formatTime */\n/* unused harmony export isExternal */\n/* unused harmony export compressImage */\n/* unused harmony export createBlob */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return fileSize; });\n/* unused harmony export getMaxIndex */\n/* unused harmony export objDeepCopy */\n/* unused harmony export getFileTypeIcon */\n/* unused harmony export getFileTypeIconWithSuffix */\n/* unused harmony export regexIsNumber */\n/* unused harmony export regexIsCRMNumber */\n/* unused harmony export regexIsCRMNumber4 */\n/* unused harmony export regexIsCRMMoneyNumber */\n/* unused harmony export regexIsCRMMobile */\n/* unused harmony export regexIsCRMEmail */\n/* unused harmony export getDateFromTimestamp */\n/* unused harmony export timestampToFormatTime */\n/* unused harmony export formatTimeToTimestamp */\n/* unused harmony export downloadFileReader */\n/* unused harmony export downloadFileHttpRequest */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return downloadFile; });\n/* unused harmony export downloadFileV1 */\n/* unused harmony export downloadImage */\n/* unused harmony export downloadFile2 */\n/* unused harmony export dataURLtoBlob */\n/* unused harmony export getBase64Image */\n/* unused harmony export guid */\n/* unused harmony export moneyFormat */\n/* unused harmony export downloadExcelWithResData */\n/* unused harmony export downloadFileWithBuffer */\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"6b54\");\n/* harmony import */ var core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\"7f7f\");\n/* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\"34ef\");\n/* harmony import */ var core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_typed_uint8_array__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\"4917\");\n/* harmony import */ var core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\"28a5\");\n/* harmony import */ var core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\"53ca\");\n/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(\"5f87\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(\"4328\");\n/* harmony import */ var qs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _static_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(\"415c\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(\"21a6\");\n/* harmony import */ var file_saver__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(file_saver__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var _vendor_Export2Excel__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(\"4bf8d\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(\"5128\");\n/* harmony import */ var element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(\"c1df\");\n/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_13__);\n\n\n\n\n\n\n\n\n/**\r\n * Created by jiachenpan on 16/11/18.\r\n */\n // get token from cookie\n//import { getBlob } from '@/utils/Blob' // get token from cookie\n\n\n\n\n\nfunction parseTime(time, cFormat) {\n if (arguments.length === 0) {\n return null;\n }\n\n var format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\n var date;\n\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(time) === 'object') {\n date = time;\n } else {\n if (('' + time).length === 10) time = parseInt(time) * 1000;\n date = new Date(time);\n }\n\n var formatObj = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n };\n var time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, function (result, key) {\n var value = formatObj[key]; // Note: getDay() returns 0 on Sunday\n\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value];\n }\n\n if (result.length > 0 && value < 10) {\n value = '0' + value;\n }\n\n return value || 0;\n });\n return time_str;\n}\nfunction formatTime(time, option) {\n time = +time * 1000;\n var d = new Date(time);\n var now = Date.now();\n var diff = (now - d) / 1000;\n\n if (diff < 30) {\n return '刚刚';\n } else if (diff < 3600) {\n // less 1 hour\n return Math.ceil(diff / 60) + '分钟前';\n } else if (diff < 3600 * 24) {\n return Math.ceil(diff / 3600) + '小时前';\n } else if (diff < 3600 * 24 * 2) {\n return '1天前';\n }\n\n if (option) {\n return parseTime(time, option);\n } else {\n return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\n }\n}\nfunction isExternal(path) {\n return /^(https?:|mailto:|tel:)/.test(path);\n}\n/** 压缩文件\r\n * quality压缩百分比 0.3\r\n */\n\nfunction compressImage(file, quality, callback) {\n // quality 设置为0.3\n quality = quality || 0.3;\n var reader = new FileReader();\n\n reader.onload = function (event) {\n var result = event.target.result;\n\n if (file.size > 204800 && file.type !== 'image/gif' && quality < 1) {\n // 大于200Kb\n var img = new Image();\n img.src = result;\n\n img.onload = function () {\n // 如果图片大于四百万像素,计算压缩比并将大小压至400万以下\n var width = img.width;\n var height = img.height;\n var ratio;\n\n if ((ratio = width * height / 4000000) > 1) {\n ratio = Math.sqrt(ratio);\n width /= ratio;\n height /= ratio;\n } else {\n ratio = 1;\n }\n\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height; // 铺底色\n\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = '#fff';\n ctx.fillRect(0, 0, canvas.width, canvas.height); // 如果图片像素大于100万则使用瓦片绘制\n\n var count;\n\n if ((count = width * height / 1000000) > 1) {\n count = ~~(Math.sqrt(count) + 1); // 计算要分成多少块瓦片\n // 计算每块瓦片的宽和高\n\n var nw = ~~(width / count);\n var nh = ~~(height / count);\n var tCanvas = document.createElement('canvas');\n tCanvas.width = nw;\n tCanvas.height = nh;\n\n for (var i = 0; i < count; i++) {\n for (var j = 0; j < count; j++) {\n var tctx = tCanvas.getContext('2d');\n tctx.drawImage(img, i * nw * ratio, j * nh * ratio, nw * ratio, nh * ratio, 0, 0, nw, nh);\n ctx.drawImage(tCanvas, i * nw, j * nh, nw, nh);\n }\n }\n\n tCanvas.width = tCanvas.height = 0;\n } else {\n ctx.drawImage(img, 0, 0, width, height);\n } // 进行最小压缩\n\n\n var ndata = canvas.toDataURL('image/jpeg', quality);\n canvas.width = canvas.height = 0;\n callback(ndata);\n };\n } else {\n // 小于200K不需要压缩 直接返回\n callback(result);\n }\n };\n\n reader.readAsDataURL(file);\n}\n/** 根据date URL 创建blob 用于上传 */\n\nfunction createBlob(result) {\n var arr = result.split(',');\n var mime = arr[0].match(/:(.*?)/)[1];\n var bstr = atob(arr[1]);\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\n/** 获取file大小的名称 */\n\nfunction fileSize(size) {\n var size_int = size;\n\n if (typeof size === 'string' && size.constructor == String) {\n size_int = parseInt(size);\n }\n\n var formatSize;\n\n if (parseInt(size_int / 1024 / 1024) > 0) {\n formatSize = (size_int / 1024 / 1024).toFixed(2) + 'MB';\n } else if (parseInt(size_int / 1024) > 0) {\n formatSize = (size_int / 1024).toFixed(2) + 'kB';\n } else {\n formatSize = size_int + 'Byte';\n }\n\n return formatSize;\n}\n/** 获取最大 z-index 的值 */\n\n\nfunction getMaxIndex() {\n return element_ui_lib_utils_popup__WEBPACK_IMPORTED_MODULE_12__[\"PopupManager\"].nextZIndex();\n}\n/** 深拷贝 */\n\nfunction objDeepCopy(source) {\n if (Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source) === 'object') {\n var sourceCopy = source instanceof Array ? [] : {};\n\n for (var item in source) {\n if (!source[item]) {\n sourceCopy[item] = source[item];\n } else {\n sourceCopy[item] = Object(E_repo2_FIS_cc_pai_ge_vue_node_modules_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_6__[/* default */ \"a\"])(source[item]) === 'object' ? objDeepCopy(source[item]) : source[item];\n }\n }\n\n return sourceCopy;\n }\n\n return source;\n}\n/** 获取文件类型图标 */\n\nfunction getFileTypeIcon(file) {\n alert(JSON.stringify(file));\n\n if (file.type.indexOf('image') !== -1) {\n return __webpack_require__(\"b720\");\n } else if (file.type.indexOf('audio') !== -1 || file.type.indexOf('video') !== -1) {\n return __webpack_require__(\"de89\");\n } else {\n var index = file.name.lastIndexOf('.');\n var ext = file.name.substr(index + 1);\n\n if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n }\n\n return __webpack_require__(\"8467\");\n}\nfunction getFileTypeIconWithSuffix(ext) {\n if (arrayContain(['jpg', 'png', 'gif'], ext)) {\n return __webpack_require__(\"b720\");\n } else if (arrayContain(['mp4', 'mp3', 'avi'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['xlsx', 'xls', 'XLSX', 'XLS'], ext)) {\n return __webpack_require__(\"5b04\");\n } else if (arrayContain(['doc', 'docx', 'DOC', 'DOCX'], ext)) {\n return __webpack_require__(\"e719\");\n } else if (arrayContain(['rar', 'zip'], ext)) {\n return __webpack_require__(\"2853\");\n } else if (ext === 'pdf') {\n return __webpack_require__(\"a362\");\n } else if (ext === 'ppt' || ext === 'pptx') {\n return __webpack_require__(\"c2ec\");\n } else if (arrayContain(['txt', 'text'], ext)) {\n return __webpack_require__(\"ac9e\");\n }\n\n return __webpack_require__(\"8467\");\n}\n\nfunction arrayContain(array, string) {\n return array.some(function (item) {\n return item === string;\n });\n}\n/** 判断输入的是number */\n\n\nfunction regexIsNumber(nubmer) {\n var regex = /^[0-9]+.?[0-9]*/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是crm数字 数字的整数部分须少于12位,小数部分须少于4位*/\n\nfunction regexIsCRMNumber(nubmer) {\n var regex = /^([-+]?\\d{1,12})(\\.\\d{0,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\nfunction regexIsCRMNumber4(nubmer) {\n var regex = /^([-+]?\\d{1,4})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是货币 货币的整数部分须少于10位,小数部分须少于2位*/\n\nfunction regexIsCRMMoneyNumber(nubmer) {\n var regex = /^([-+]?\\d{1,10})(\\.\\d{0,2})?$/;\n\n if (!regex.test(nubmer)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是电话*/\n\nfunction regexIsCRMMobile(mobile) {\n var regex = /^(\\+?0?\\d{2,4}\\-?)?\\d{6,11}$/;\n\n if (!regex.test(mobile)) {\n return false;\n }\n\n return true;\n}\n/** 判断输入的是邮箱*/\n\nfunction regexIsCRMEmail(email) {\n var regex = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\n\n if (!regex.test(email)) {\n return false;\n }\n\n return true;\n}\n/**\r\n * 时间操作\r\n * @param\r\n */\n\n/** 时间戳转date*/\n\n\nfunction getDateFromTimestamp(time) {\n var times = 0;\n\n if (time.length === 13) {\n times = parseInt(time);\n } else {\n times = parseInt(time) * 1000;\n }\n\n return new Date(times); // 如果date为13位不需要乘1000\n}\n/**\r\n *\r\n * @param {*} timestamp 时间戳\r\n * @param {*} format 格式化\r\n */\n\nfunction timestampToFormatTime(timestamp, format) {\n if (timestamp && timestamp.toString().length >= 10) {\n return moment__WEBPACK_IMPORTED_MODULE_13___default()(getDateFromTimestamp(timestamp.toString())).format(format);\n }\n\n return '';\n}\n/**\r\n *\r\n * @param {*} format 格式化字符串\r\n */\n\nfunction formatTimeToTimestamp(format) {\n if (format && format.length > 0) {\n var timeValue = moment__WEBPACK_IMPORTED_MODULE_13___default()(format).valueOf().toString();\n return timeValue.length > 10 ? timeValue.substr(0, 10) : timeValue;\n }\n\n return '';\n}\n/**\r\n* 下载文件调用\r\n* @param 接口返回数据 文件名\r\n*/\n\nfunction downloadFileReader(res, fileName) {\n alert(JSON.stringify(res.content) + fileName + \"content\");\n\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\");\n var dataInfo = res.content;\n var reader = new window.FileReader();\n alert(\"readresult\" + JSON.stringify(reader)); // 使用readAsArrayBuffer读取文件, result属性中将包含一个 ArrayBuffer 对象以表示所读取文件的数据\n\n reader.readAsArrayBuffer(dataInfo);\n\n reader.onload = function (e) {\n var result = e.target.result;\n var contentType = 'application/octet-stream';\n var blob = new Blob([result], {\n type: contentType\n }); // 使用 Blob 创建一个指向类型化数组的URL, URL.createObjectURL是new Blob文件的方法,可以生成一个普通的url,可以直接使用,比如用在img.src上\n //const url = window.URL.createObjectURL(blob)\n\n var ie_fileName = fileName + \".\" + res.fileType;\n window.navigator.msSaveOrOpenBlob(blob, ie_fileName); //此方法类似上面的方法,区别可自行百度\n };\n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n var uInt8Array = Uint8Array.from(res.content);\n var blob = new Blob([uInt8Array], {\n type: \"application/msword\" //word文档为msword,pdf文档为pdf\n\n });\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\nfunction downloadFileHttpRequest(apiurl, attachment) {\n var baseURL = _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.ip + ':' + _static_config__WEBPACK_IMPORTED_MODULE_9__[/* default */ \"a\"].base.backend_port;\n\n function createObjectURL(object) {\n return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);\n }\n\n var xhr = new XMLHttpRequest();\n var formData = new FormData();\n xhr.open('get', baseURL + apiurl + '/' + attachment.fileUrl, true); //url填写后台的接口地址,如果是post,在formData append参数(参考原文地址)\n\n xhr.setRequestHeader(\"Authorization\", 'Bearer ' + Object(_utils_auth__WEBPACK_IMPORTED_MODULE_7__[/* getToken */ \"a\"])());\n xhr.responseType = 'blob';\n\n xhr.onload = function (e) {\n if (this.status == 200) {\n alert(\"xmlhttp\" + JSON.stringify(xhr.response));\n var blob = xhr.response;\n var filename = attachment.fileName + \".\" + attachment.fileType; // console.log(this.response)\n\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveBlob(blob, filename);\n } else {\n var a = document.createElement('a');\n var url = createObjectURL(blob);\n a.href = url;\n a.download = filename;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n };\n\n xhr.send(formData);\n}\nfunction downloadFile(res, fileName) {\n if (!res) {\n return;\n }\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream;charset=utf-8'\n }), fileName);\n });\n}\nfunction downloadFileV1(res, fileName) {\n if (!res) {\n return;\n }\n\n if (window.navigator.msSaveBlob) {\n // IE以及IE内核的浏览器ArrayBuffer\n try {\n alert(\"ie\"); ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n // let arrayBuffer = new ArrayBuffer(res.content.length) // 创建缓冲数组\n // let uIntArray = new Uint8Array(arrayBuffer) // 创建视图\n ////方法二\n //let uIntArray = Uint8Array.from(res.content);alert(uIntArray)\n //方法三\n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n //方法四\n\n Promise.resolve(/* import() */).then(__webpack_require__.bind(null, \"4bf8d\")).then(function (excel) {\n //var ie_fileName=fileName+\".\"+res.fileType;\n //var blob=excel.s2ab(res);\n file_saver__WEBPACK_IMPORTED_MODULE_10___default.a.saveAs(new Blob([res], {\n //type:'application/msword'\n type: 'application/octet-stream'\n }), fileName);\n }); // alert(\"uintArr:\"+JSON.stringify(uintArr))\n // var blob = new Blob([uintArr], {\n // //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n // type: 'application/octet-stream'\n // //type:'application/msword'\n // })\n // var ie_fileName=fileName+\".\"+res.fileType;\n // // alert(JSON.stringify(blob))\n // window.navigator.msSaveOrOpenBlob(blob,ie_fileName ); \n } catch (e) {\n console.log(e);\n }\n } else {\n //chrome/firefox浏览器\n // var uInt8Array = Uint8Array.from(res.content);\n // let blob = new Blob([uInt8Array], {\n // type: 'application/msword' //word文档为msword,pdf文档为pdf\n // });\n ////方法一\n // ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区\n var arrayBuffer = new ArrayBuffer(res.content.length); // 创建缓冲数组\n\n var uIntArray = new Uint8Array(arrayBuffer); // 创建视图\n ////方法二 \n // let uintArr = new Uint8Array(res.content.length) // 创建视图\n // for (let i = 0; i < res.content.length; i++) {\n // uintArr[i] = res.content.charCodeAt(i)\n // }\n\n alert(\"uintArr:\" + JSON.stringify(uIntArray));\n var blob = new Blob(uIntArray, {\n //type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'\n type: 'application/octet-stream' //word文档为msword,pdf文档为pdf\n //type:'application/msword'\n\n });\n var ie_fileName = fileName + \".\" + res.fileType;\n var url = window.URL.createObjectURL(blob);\n var link = document.createElement('a');\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', ie_fileName); // 文件名\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link); // 下载完成移除元素\n\n window.URL.revokeObjectURL(url); // 释放掉blob对象\n }\n}\n/** image 下载 */\n\n/**\r\n *\r\n * @param {*} data url\r\n * @param {*} filename 名称\r\n */\n\nfunction downloadImage(data, filename) {\n //alert(data+filename+\"img\")\n var httpindex = data.indexOf('http');\n\n if (httpindex === 0) {\n alert(\"if\");\n var image = new Image(); // 解决跨域 canvas 污染问题\n\n image.setAttribute('crossOrigin', 'anonymous');\n\n image.onload = function () {\n var canvas = document.createElement('canvas');\n canvas.width = image.width;\n canvas.height = image.height;\n var context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, image.width, image.height);\n var dataURL = canvas.toDataURL('image/png'); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n\n var blob = dataURLtoBlob(dataURL);\n a.href = URL.createObjectURL(blob); // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n };\n\n image.src = data;\n } else {\n alert(\"else-img\"); // 生成一个 a 标签\n\n var a = document.createElement('a'); // 创建一个点击事件\n\n var event = new MouseEvent('click'); // 将 a 的 download 属性设置为我们想要下载的图片的名称,若 name 不存在则使用'图片'作为默认名称\n\n a.download = filename || '图片'; // 将生成的 URL 设置为 a.href 属性\n //a.href =require(\"D:/file/139A26CB-FD23-8830-C633-19F6063E8161.jpg\");\n\n a.href = data; // 触发 a 的点击事件\n\n a.dispatchEvent(event);\n }\n}\n/**\r\n* path 和 name\r\n*/\n\nfunction downloadFile2(data) {\n var a = document.createElement('a');\n a.href = data.path;\n a.download = data.name ? data.name : '文件';\n a.target = '_black';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n}\nfunction dataURLtoBlob(dataurl) {\n // eslint-disable-next-line one-var\n var arr = dataurl.split(','),\n mime = arr[0].match(/:(.*?);/)[1],\n bstr = atob(arr[1]),\n n = bstr.length,\n u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], {\n type: mime\n });\n}\nfunction getBase64Image(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0, img.width, img.height);\n var ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase();\n var dataURL = canvas.toDataURL('image/' + ext);\n return dataURL;\n} // 获取绑定参数\n\nfunction guid() {\n function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n }\n\n return S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4();\n}\n/**\r\n * 金额格式化 增加千分符\r\n * @param {*} val\r\n */\n\nfunction moneyFormat(val) {\n if (!val) return '0.00';\n var i = Math.floor(val);\n var d = val.split('.')[1] || '00';\n return i.toLocaleString('en-US') + '.' + d;\n}\n/**\r\n * 下载excel\r\n */\n\nfunction downloadExcelWithResData(res) {\n var fileName = res.headers['content-disposition'].split('filename=')[1];\n\n if (!fileName) {\n fileName = res.headers['content-disposition'].split('UTF-8\\'\\'')[1];\n }\n\n fileName = fileName ? fileName.replace(/\\\"/g, '') : 'file.xlsx';\n fileName = decodeURI(fileName) || '';\n downloadFileWithBuffer(res.data, fileName, 'application/vnd.ms-excel;charset=utf-8');\n}\nfunction downloadFileWithBuffer(data, name, type) {\n var blob = new Blob([data], {\n type: type || ''\n });\n var downloadElement = document.createElement('a');\n var href = window.URL.createObjectURL(blob); // 创建下载的链接\n\n downloadElement.href = href;\n downloadElement.download = name; // 下载后文件名\n\n document.body.appendChild(downloadElement);\n downloadElement.click(); // 点击下载\n\n document.body.removeChild(downloadElement); // 下载完成移除元素\n\n window.URL.revokeObjectURL(href); // 释放掉blob对象\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMvY3JtaW5kZXguanM/YTYxMSJdLCJuYW1lcyI6WyJwYXJzZVRpbWUiLCJ0aW1lIiwiY0Zvcm1hdCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvcm1hdCIsImRhdGUiLCJwYXJzZUludCIsIkRhdGUiLCJmb3JtYXRPYmoiLCJ5IiwiZ2V0RnVsbFllYXIiLCJtIiwiZ2V0TW9udGgiLCJkIiwiZ2V0RGF0ZSIsImgiLCJnZXRIb3VycyIsImkiLCJnZXRNaW51dGVzIiwicyIsImdldFNlY29uZHMiLCJhIiwiZ2V0RGF5IiwidGltZV9zdHIiLCJyZXBsYWNlIiwicmVzdWx0Iiwia2V5IiwidmFsdWUiLCJmb3JtYXRUaW1lIiwib3B0aW9uIiwibm93IiwiZGlmZiIsIk1hdGgiLCJjZWlsIiwiaXNFeHRlcm5hbCIsInBhdGgiLCJ0ZXN0IiwiY29tcHJlc3NJbWFnZSIsImZpbGUiLCJxdWFsaXR5IiwiY2FsbGJhY2siLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZXZlbnQiLCJ0YXJnZXQiLCJzaXplIiwidHlwZSIsImltZyIsIkltYWdlIiwic3JjIiwid2lkdGgiLCJoZWlnaHQiLCJyYXRpbyIsInNxcnQiLCJjYW52YXMiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJjb3VudCIsIm53IiwibmgiLCJ0Q2FudmFzIiwiaiIsInRjdHgiLCJkcmF3SW1hZ2UiLCJuZGF0YSIsInRvRGF0YVVSTCIsInJlYWRBc0RhdGFVUkwiLCJjcmVhdGVCbG9iIiwiYXJyIiwic3BsaXQiLCJtaW1lIiwibWF0Y2giLCJic3RyIiwiYXRvYiIsIm4iLCJ1OGFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiQmxvYiIsImZpbGVTaXplIiwic2l6ZV9pbnQiLCJjb25zdHJ1Y3RvciIsIlN0cmluZyIsImZvcm1hdFNpemUiLCJ0b0ZpeGVkIiwiZ2V0TWF4SW5kZXgiLCJQb3B1cE1hbmFnZXIiLCJuZXh0WkluZGV4Iiwib2JqRGVlcENvcHkiLCJzb3VyY2UiLCJzb3VyY2VDb3B5IiwiQXJyYXkiLCJpdGVtIiwiZ2V0RmlsZVR5cGVJY29uIiwiYWxlcnQiLCJKU09OIiwic3RyaW5naWZ5IiwiaW5kZXhPZiIsInJlcXVpcmUiLCJpbmRleCIsIm5hbWUiLCJsYXN0SW5kZXhPZiIsImV4dCIsInN1YnN0ciIsImFycmF5Q29udGFpbiIsImdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgiLCJhcnJheSIsInN0cmluZyIsInNvbWUiLCJyZWdleElzTnVtYmVyIiwibnVibWVyIiwicmVnZXgiLCJyZWdleElzQ1JNTnVtYmVyIiwicmVnZXhJc0NSTU51bWJlcjQiLCJyZWdleElzQ1JNTW9uZXlOdW1iZXIiLCJyZWdleElzQ1JNTW9iaWxlIiwibW9iaWxlIiwicmVnZXhJc0NSTUVtYWlsIiwiZW1haWwiLCJnZXREYXRlRnJvbVRpbWVzdGFtcCIsInRpbWVzIiwidGltZXN0YW1wVG9Gb3JtYXRUaW1lIiwidGltZXN0YW1wIiwidG9TdHJpbmciLCJtb21lbnQiLCJmb3JtYXRUaW1lVG9UaW1lc3RhbXAiLCJ0aW1lVmFsdWUiLCJ2YWx1ZU9mIiwiZG93bmxvYWRGaWxlUmVhZGVyIiwicmVzIiwiZmlsZU5hbWUiLCJjb250ZW50Iiwid2luZG93IiwibmF2aWdhdG9yIiwibXNTYXZlQmxvYiIsImRhdGFJbmZvIiwicmVhZEFzQXJyYXlCdWZmZXIiLCJlIiwiY29udGVudFR5cGUiLCJibG9iIiwiaWVfZmlsZU5hbWUiLCJmaWxlVHlwZSIsIm1zU2F2ZU9yT3BlbkJsb2IiLCJjb25zb2xlIiwibG9nIiwidUludDhBcnJheSIsImZyb20iLCJ1cmwiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJsaW5rIiwic3R5bGUiLCJkaXNwbGF5IiwiaHJlZiIsInNldEF0dHJpYnV0ZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImNsaWNrIiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJkb3dubG9hZEZpbGVIdHRwUmVxdWVzdCIsImFwaXVybCIsImF0dGFjaG1lbnQiLCJiYXNlVVJMIiwiY29uZmlnIiwiYmFzZSIsImlwIiwiYmFja2VuZF9wb3J0Iiwib2JqZWN0Iiwid2Via2l0VVJMIiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJmb3JtRGF0YSIsIkZvcm1EYXRhIiwib3BlbiIsImZpbGVVcmwiLCJzZXRSZXF1ZXN0SGVhZGVyIiwiZ2V0VG9rZW4iLCJyZXNwb25zZVR5cGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsImZpbGVuYW1lIiwiZG93bmxvYWQiLCJzZW5kIiwiZG93bmxvYWRGaWxlIiwidGhlbiIsImV4Y2VsIiwiRmlsZVNhdmVyIiwic2F2ZUFzIiwiZG93bmxvYWRGaWxlVjEiLCJhcnJheUJ1ZmZlciIsIkFycmF5QnVmZmVyIiwidUludEFycmF5IiwiZG93bmxvYWRJbWFnZSIsImRhdGEiLCJodHRwaW5kZXgiLCJpbWFnZSIsImNvbnRleHQiLCJkYXRhVVJMIiwiTW91c2VFdmVudCIsImRhdGFVUkx0b0Jsb2IiLCJkaXNwYXRjaEV2ZW50IiwiZG93bmxvYWRGaWxlMiIsImRhdGF1cmwiLCJnZXRCYXNlNjRJbWFnZSIsInN1YnN0cmluZyIsInRvTG93ZXJDYXNlIiwiZ3VpZCIsIlM0IiwicmFuZG9tIiwibW9uZXlGb3JtYXQiLCJ2YWwiLCJmbG9vciIsInRvTG9jYWxlU3RyaW5nIiwiZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhIiwiaGVhZGVycyIsImRlY29kZVVSSSIsImRvd25sb2FkRmlsZVdpdGhCdWZmZXIiLCJkb3dubG9hZEVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtDQUN3QztBQUN4Qzs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVPLFNBQVNBLFNBQVQsQ0FBbUJDLElBQW5CLEVBQXlCQyxPQUF6QixFQUFrQztBQUNyQyxNQUFJQyxT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LENBQUN3RyxJQUFULENBQWNDLFdBQWQsQ0FBMEI4RCxlQUExQjtBQUNBQSxpQkFBZSxDQUFDN0QsS0FBaEIsR0FUdUQsQ0FTL0I7O0FBQ3hCMUcsVUFBUSxDQUFDd0csSUFBVCxDQUFjRyxXQUFkLENBQTBCNEQsZUFBMUIsRUFWdUQsQ0FVWjs7QUFDM0N0RixRQUFNLENBQUNnQixHQUFQLENBQVdXLGVBQVgsQ0FBMkJOLElBQTNCLEVBWHVELENBV3RCO0FBQ2xDIiwiZmlsZSI6ImE2MTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ3JlYXRlZCBieSBqaWFjaGVucGFuIG9uIDE2LzExLzE4LlxyXG4gKi9cclxuaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICdAL3V0aWxzL2F1dGgnIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG4vL2ltcG9ydCB7IGdldEJsb2IgfSBmcm9tICdAL3V0aWxzL0Jsb2InIC8vIGdldCB0b2tlbiBmcm9tIGNvb2tpZVxyXG5pbXBvcnQgcXMgZnJvbSAncXMnXHJcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vc3RhdGljL2NvbmZpZydcclxuaW1wb3J0IEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgZ2V0QmxvYiBmcm9tICdAL3ZlbmRvci9FeHBvcnQyRXhjZWwnXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKHRpbWUsIGNGb3JtYXQpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsXHJcbiAgICB9XHJcbiAgICBjb25zdCBmb3JtYXQgPSBjRm9ybWF0IHx8ICd7eX0te219LXtkfSB7aH06e2l9OntzfSdcclxuICAgIGxldCBkYXRlXHJcbiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgIGRhdGUgPSB0aW1lXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoKCcnICsgdGltZSkubGVuZ3RoID09PSAxMCkgdGltZSA9IHBhcnNlSW50KHRpbWUpICogMTAwMFxyXG4gICAgICBkYXRlID0gbmV3IERhdGUodGltZSlcclxuICAgIH1cclxuICAgIGNvbnN0IGZvcm1hdE9iaiA9IHtcclxuICAgICAgeTogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkOiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaDogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBpOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIGE6IGRhdGUuZ2V0RGF5KClcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbWVfc3RyID0gZm9ybWF0LnJlcGxhY2UoL3soeXxtfGR8aHxpfHN8YSkrfS9nLCAocmVzdWx0LCBrZXkpID0+IHtcclxuICAgICAgbGV0IHZhbHVlID0gZm9ybWF0T2JqW2tleV1cclxuICAgICAgLy8gTm90ZTogZ2V0RGF5KCkgcmV0dXJucyAwIG9uIFN1bmRheVxyXG4gICAgICBpZiAoa2V5ID09PSAnYScpIHtcclxuICAgICAgICByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV1cclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkge1xyXG4gICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWVcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgfHwgMFxyXG4gICAgfSlcclxuICAgIHJldHVybiB0aW1lX3N0clxyXG4gIH1cclxuICBcclxuICBleHBvcnQgZnVuY3Rpb24gZm9ybWF0VGltZSh0aW1lLCBvcHRpb24pIHtcclxuICAgIHRpbWUgPSArdGltZSAqIDEwMDBcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aW1lKVxyXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKVxyXG4gIFxyXG4gICAgY29uc3QgZGlmZiA9IChub3cgLSBkKSAvIDEwMDBcclxuICBcclxuICAgIGlmIChkaWZmIDwgMzApIHtcclxuICAgICAgcmV0dXJuICfliJrliJonXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwKSB7XHJcbiAgICAgIC8vIGxlc3MgMSBob3VyXHJcbiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDYwKSArICfliIbpkp/liY0nXHJcbiAgICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHtcclxuICAgICAgcmV0dXJuIE1hdGguY2VpbChkaWZmIC8gMzYwMCkgKyAn5bCP5pe25YmNJ1xyXG4gICAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikge1xyXG4gICAgICByZXR1cm4gJzHlpKnliY0nXHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBkLmdldE1vbnRoKCkgK1xyXG4gICAgICAgIDEgK1xyXG4gICAgICAgICfmnIgnICtcclxuICAgICAgICBkLmdldERhdGUoKSArXHJcbiAgICAgICAgJ+aXpScgK1xyXG4gICAgICAgIGQuZ2V0SG91cnMoKSArXHJcbiAgICAgICAgJ+aXticgK1xyXG4gICAgICAgIGQuZ2V0TWludXRlcygpICtcclxuICAgICAgICAn5YiGJ1xyXG4gICAgICApXHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydCBmdW5jdGlvbiBpc0V4dGVybmFsKHBhdGgpIHtcclxuICAgIHJldHVybiAvXihodHRwcz86fG1haWx0bzp8dGVsOikvLnRlc3QocGF0aClcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWOi+e8qeaWh+S7tlxyXG4gICAqIHF1YWxpdHnljovnvKnnmb7liIbmr5QgMC4zXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXByZXNzSW1hZ2UoZmlsZSwgcXVhbGl0eSwgY2FsbGJhY2spIHtcclxuICAgIC8vIHF1YWxpdHkg6K6+572u5Li6MC4zXHJcbiAgICBxdWFsaXR5ID0gcXVhbGl0eSB8fCAwLjNcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldmVudCkge1xyXG4gICAgICB2YXIgcmVzdWx0ID0gZXZlbnQudGFyZ2V0LnJlc3VsdFxyXG4gICAgICBpZiAoZmlsZS5zaXplID4gMjA0ODAwICYmIGZpbGUudHlwZSAhPT0gJ2ltYWdlL2dpZicgJiYgcXVhbGl0eSA8IDEpIHsgLy8g5aSn5LqOMjAwS2JcclxuICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKVxyXG4gICAgICAgIGltZy5zcmMgPSByZXN1bHRcclxuICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflpKfkuo7lm5vnmb7kuIflg4/ntKDvvIzorqHnrpfljovnvKnmr5TlubblsIblpKflsI/ljovoh7M0MDDkuIfku6XkuItcclxuICAgICAgICAgIHZhciB3aWR0aCA9IGltZy53aWR0aFxyXG4gICAgICAgICAgdmFyIGhlaWdodCA9IGltZy5oZWlnaHRcclxuICBcclxuICAgICAgICAgIHZhciByYXRpb1xyXG4gICAgICAgICAgaWYgKChyYXRpbyA9IHdpZHRoICogaGVpZ2h0IC8gNDAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gTWF0aC5zcXJ0KHJhdGlvKVxyXG4gICAgICAgICAgICB3aWR0aCAvPSByYXRpb1xyXG4gICAgICAgICAgICBoZWlnaHQgLz0gcmF0aW9cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhdGlvID0gMVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aFxyXG4gICAgICAgICAgY2FudmFzLmhlaWdodCA9IGhlaWdodFxyXG4gICAgICAgICAgLy8g6ZO65bqV6ImyXHJcbiAgICAgICAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZidcclxuICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpXHJcbiAgICAgICAgICAvLyDlpoLmnpzlm77niYflg4/ntKDlpKfkuo4xMDDkuIfliJnkvb/nlKjnk6bniYfnu5jliLZcclxuICAgICAgICAgIHZhciBjb3VudFxyXG4gICAgICAgICAgaWYgKChjb3VudCA9IHdpZHRoICogaGVpZ2h0IC8gMTAwMDAwMCkgPiAxKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gfn4oTWF0aC5zcXJ0KGNvdW50KSArIDEpXHJcbiAgICAgICAgICAgIC8vIOiuoeeul+imgeWIhuaIkOWkmuWwkeWdl+eTpueJh1xyXG4gICAgICAgICAgICAvLyDorqHnrpfmr4/lnZfnk6bniYfnmoTlrr3lkozpq5hcclxuICAgICAgICAgICAgdmFyIG53ID0gfn4od2lkdGggLyBjb3VudClcclxuICAgICAgICAgICAgdmFyIG5oID0gfn4oaGVpZ2h0IC8gY291bnQpXHJcbiAgICAgICAgICAgIHZhciB0Q2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IG53XHJcbiAgICAgICAgICAgIHRDYW52YXMuaGVpZ2h0ID0gbmhcclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBjb3VudDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgdGN0eCA9IHRDYW52YXMuZ2V0Q29udGV4dCgnMmQnKVxyXG4gICAgICAgICAgICAgICAgdGN0eC5kcmF3SW1hZ2UoaW1nLCBpICogbncgKiByYXRpbywgaiAqIG5oICogcmF0aW8sIG53ICogcmF0aW8sIG5oICogcmF0aW8sIDAsIDAsIG53LCBuaClcclxuICBcclxuICAgICAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UodENhbnZhcywgaSAqIG53LCBqICogbmgsIG53LCBuaClcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdENhbnZhcy53aWR0aCA9IHRDYW52YXMuaGVpZ2h0ID0gMFxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDov5vooYzmnIDlsI/ljovnvKlcclxuICAgICAgICAgIHZhciBuZGF0YSA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBxdWFsaXR5KVxyXG4gICAgICAgICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDBcclxuICAgICAgICAgIGNhbGxiYWNrKG5kYXRhKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHsgLy8g5bCP5LqOMjAwS+S4jemcgOimgeWOi+e8qSDnm7TmjqXov5Tlm55cclxuICAgICAgICBjYWxsYmFjayhyZXN1bHQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmoLnmja5kYXRlIFVSTCDliJvlu7pibG9iIOeUqOS6juS4iuS8oCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCbG9iKHJlc3VsdCkge1xyXG4gICAgdmFyIGFyciA9IHJlc3VsdC5zcGxpdCgnLCcpXHJcbiAgICB2YXIgbWltZSA9IGFyclswXS5tYXRjaCgvOiguKj8pLylbMV1cclxuICAgIHZhciBic3RyID0gYXRvYihhcnJbMV0pXHJcbiAgICB2YXIgbiA9IGJzdHIubGVuZ3RoXHJcbiAgICB2YXIgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPlmZpbGXlpKflsI/nmoTlkI3np7AgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZmlsZVNpemUoc2l6ZSkge1xyXG4gICAgdmFyIHNpemVfaW50ID0gc2l6ZVxyXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnc3RyaW5nJyAmJiBzaXplLmNvbnN0cnVjdG9yID09IFN0cmluZykge1xyXG4gICAgICBzaXplX2ludCA9IHBhcnNlSW50KHNpemUpXHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybWF0U2l6ZVxyXG4gICAgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCAvIDEwMjQpID4gMCkge1xyXG4gICAgICBmb3JtYXRTaXplID0gKHNpemVfaW50IC8gMTAyNCAvIDEwMjQpLnRvRml4ZWQoMikgKyAnTUInXHJcbiAgICB9IGVsc2UgaWYgKHBhcnNlSW50KHNpemVfaW50IC8gMTAyNCkgPiAwKSB7XHJcbiAgICAgIGZvcm1hdFNpemUgPSAoc2l6ZV9pbnQgLyAxMDI0KS50b0ZpeGVkKDIpICsgJ2tCJ1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9ybWF0U2l6ZSA9IHNpemVfaW50ICsgJ0J5dGUnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0U2l6ZTtcclxuICB9XHJcbiAgXHJcbiAgLyoqIOiOt+WPluacgOWkpyB6LWluZGV4IOeahOWAvCAqL1xyXG4gIGltcG9ydCB7XHJcbiAgICBQb3B1cE1hbmFnZXJcclxuICB9IGZyb20gJ2VsZW1lbnQtdWkvbGliL3V0aWxzL3BvcHVwJ1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRNYXhJbmRleCgpIHtcclxuICAgIHJldHVybiBQb3B1cE1hbmFnZXIubmV4dFpJbmRleCgpXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDmt7Hmi7fotJ0gKi9cclxuICBleHBvcnQgZnVuY3Rpb24gb2JqRGVlcENvcHkoc291cmNlKSB7XHJcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgdmFyIHNvdXJjZUNvcHkgPSBzb3VyY2UgaW5zdGFuY2VvZiBBcnJheSA/IFtdIDoge31cclxuICAgICAgZm9yICh2YXIgaXRlbSBpbiBzb3VyY2UpIHtcclxuICAgICAgICBpZiAoIXNvdXJjZVtpdGVtXSkge1xyXG4gICAgICAgICAgc291cmNlQ29weVtpdGVtXSA9IHNvdXJjZVtpdGVtXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzb3VyY2VDb3B5W2l0ZW1dID0gdHlwZW9mIHNvdXJjZVtpdGVtXSA9PT0gJ29iamVjdCcgPyBvYmpEZWVwQ29weShzb3VyY2VbaXRlbV0pIDogc291cmNlW2l0ZW1dXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBzb3VyY2VDb3B5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc291cmNlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDojrflj5bmlofku7bnsbvlnovlm77moIcgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmlsZVR5cGVJY29uKGZpbGUpIHthbGVydChKU09OLnN0cmluZ2lmeShmaWxlKSlcclxuICAgIGlmIChmaWxlLnR5cGUuaW5kZXhPZignaW1hZ2UnKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuaW5kZXhPZignYXVkaW8nKSAhPT0gLTEgfHwgZmlsZS50eXBlLmluZGV4T2YoJ3ZpZGVvJykgIT09IC0xKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV92aWRlby5wbmcnKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFyIGluZGV4ID0gZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJylcclxuICAgICAgdmFyIGV4dCA9IGZpbGUubmFtZS5zdWJzdHIoaW5kZXggKyAxKVxyXG4gICAgICBpZiAoYXJyYXlDb250YWluKFsneGxzeCcsICd4bHMnLCAnWExTWCcsICdYTFMnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV9leGNsZS5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfd29yZC5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3JhcicsICd6aXAnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgICAgfSBlbHNlIGlmIChleHQgPT09ICdwZGYnKSB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BkZi5wbmcnKVxyXG4gICAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcHB0LnBuZycpXHJcbiAgICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsndHh0JywgJ3RleHQnXSwgZXh0KSkge1xyXG4gICAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3Vua25vd24ucG5nJylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVUeXBlSWNvbldpdGhTdWZmaXgoZXh0KSB7XHJcbiAgICBpZiAoYXJyYXlDb250YWluKFsnanBnJywgJ3BuZycsICdnaWYnXSwgZXh0KSkge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfaW1nLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ21wNCcsICdtcDMnLCAnYXZpJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ3hsc3gnLCAneGxzJywgJ1hMU1gnLCAnWExTJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX2V4Y2xlLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGFycmF5Q29udGFpbihbJ2RvYycsICdkb2N4JywgJ0RPQycsICdET0NYJ10sIGV4dCkpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nJylcclxuICAgIH0gZWxzZSBpZiAoYXJyYXlDb250YWluKFsncmFyJywgJ3ppcCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV96aXAucG5nJylcclxuICAgIH0gZWxzZSBpZiAoZXh0ID09PSAncGRmJykge1xyXG4gICAgICByZXR1cm4gcmVxdWlyZSgnQC9hc3NldHMvaW1nL2ZpbGVfcGRmLnBuZycpXHJcbiAgICB9IGVsc2UgaWYgKGV4dCA9PT0gJ3BwdCcgfHwgZXh0ID09PSAncHB0eCcpIHtcclxuICAgICAgcmV0dXJuIHJlcXVpcmUoJ0AvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmcnKVxyXG4gICAgfSBlbHNlIGlmIChhcnJheUNvbnRhaW4oWyd0eHQnLCAndGV4dCddLCBleHQpKSB7XHJcbiAgICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV90eHQucG5nJylcclxuICAgIH1cclxuICAgIHJldHVybiByZXF1aXJlKCdAL2Fzc2V0cy9pbWcvZmlsZV91bmtub3duLnBuZycpXHJcbiAgfVxyXG4gIFxyXG4gIGZ1bmN0aW9uIGFycmF5Q29udGFpbihhcnJheSwgc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gYXJyYXkuc29tZSgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbSA9PT0gc3RyaW5nXHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivbnVtYmVyICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNOdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXlswLTldKy4/WzAtOV0qL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5pivY3Jt5pWw5a2XIOaVsOWtl+eahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEy5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqONOS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1OdW1iZXIobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDEyfSkoXFwuXFxkezAsNH0pPyQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobnVibWVyKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gcmVnZXhJc0NSTU51bWJlcjQobnVibWVyKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihbLStdP1xcZHsxLDR9KT8kL1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KG51Ym1lcikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKiog5Yik5pat6L6T5YWl55qE5piv6LSn5biBIOi0p+W4geeahOaVtOaVsOmDqOWIhumhu+WwkeS6jjEw5L2N77yM5bCP5pWw6YOo5YiG6aG75bCR5LqOMuS9jSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb25leU51bWJlcihudWJtZXIpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFstK10/XFxkezEsMTB9KShcXC5cXGR7MCwyfSk/JC9cclxuICAgIGlmICghcmVnZXgudGVzdChudWJtZXIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcbiAgXHJcbiAgLyoqIOWIpOaWrei+k+WFpeeahOaYr+eUteivnSovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHJlZ2V4SXNDUk1Nb2JpbGUobW9iaWxlKSB7XHJcbiAgICB2YXIgcmVnZXggPSAvXihcXCs/MD9cXGR7Miw0fVxcLT8pP1xcZHs2LDExfSQvXHJcbiAgICBpZiAoIXJlZ2V4LnRlc3QobW9iaWxlKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2VcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG4gIFxyXG4gIC8qKiDliKTmlq3ovpPlhaXnmoTmmK/pgq7nrrEqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiByZWdleElzQ1JNRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWdleCA9IC9eKFtBLVphLXowLTlfXFwtXFwuXSkrXFxAKFtBLVphLXowLTlfXFwtXFwuXSkrXFwuKFtBLVphLXpdezIsNH0pJC9cclxuICAgIGlmICghcmVnZXgudGVzdChlbWFpbCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKiDml7bpl7Tmk43kvZxcclxuICAgKiBAcGFyYW1cclxuICAgKi9cclxuICAvKiog5pe26Ze05oiz6L2sZGF0ZSovXHJcbiAgaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnXHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVGcm9tVGltZXN0YW1wKHRpbWUpIHtcclxuICAgIHZhciB0aW1lcyA9IDBcclxuICAgIGlmICh0aW1lLmxlbmd0aCA9PT0gMTMpIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGltZXMgPSBwYXJzZUludCh0aW1lKSAqIDEwMDBcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lcykgLy8g5aaC5p6cZGF0ZeS4ujEz5L2N5LiN6ZyA6KaB5LmYMTAwMFxyXG4gIH1cclxuICBcclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Kn0gdGltZXN0YW1wIOaXtumXtOaIs1xyXG4gICAqIEBwYXJhbSB7Kn0gZm9ybWF0IOagvOW8j+WMllxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB0aW1lc3RhbXBUb0Zvcm1hdFRpbWUodGltZXN0YW1wLCBmb3JtYXQpIHtcclxuICAgIGlmICh0aW1lc3RhbXAgJiYgdGltZXN0YW1wLnRvU3RyaW5nKCkubGVuZ3RoID49IDEwKSB7XHJcbiAgICAgIHJldHVybiBtb21lbnQoZ2V0RGF0ZUZyb21UaW1lc3RhbXAodGltZXN0YW1wLnRvU3RyaW5nKCkpKS5mb3JtYXQoZm9ybWF0KVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBmb3JtYXQg5qC85byP5YyW5a2X56ym5LiyXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFRpbWVUb1RpbWVzdGFtcChmb3JtYXQpIHtcclxuICAgIGlmIChmb3JtYXQgJiYgZm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFyIHRpbWVWYWx1ZSA9IG1vbWVudChmb3JtYXQpXHJcbiAgICAgICAgLnZhbHVlT2YoKVxyXG4gICAgICAgIC50b1N0cmluZygpXHJcbiAgICAgIHJldHVybiB0aW1lVmFsdWUubGVuZ3RoID4gMTAgPyB0aW1lVmFsdWUuc3Vic3RyKDAsIDEwKSA6IHRpbWVWYWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICog5LiL6L295paH5Lu26LCD55SoXHJcbiAqIEBwYXJhbSDmjqXlj6Pov5Tlm57mlbDmja4g5paH5Lu25ZCNXHJcbiAqL1xyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlUmVhZGVyKHJlcywgZmlsZU5hbWUpIHthbGVydChKU09OLnN0cmluZ2lmeShyZXMuY29udGVudCkrZmlsZU5hbWUrXCJjb250ZW50XCIpXHJcbiAgaWYgKCFyZXMpIHtcclxuICAgIHJldHVyblxyXG4gIH1cclxuICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgIHRyeSB7YWxlcnQoXCJpZVwiKVxyXG4gICAgICBjb25zdCBkYXRhSW5mbyA9IHJlcy5jb250ZW50XHJcbiAgICAgIGxldCByZWFkZXIgPSBuZXcgd2luZG93LkZpbGVSZWFkZXIoKVxyXG4gICAgICBhbGVydChcInJlYWRyZXN1bHRcIitKU09OLnN0cmluZ2lmeShyZWFkZXIpKVxyXG4gICAgICAvLyDkvb/nlKhyZWFkQXNBcnJheUJ1ZmZlcuivu+WPluaWh+S7tiwgcmVzdWx05bGe5oCn5Lit5bCG5YyF5ZCr5LiA5LiqIEFycmF5QnVmZmVyIOWvueixoeS7peihqOekuuaJgOivu+WPluaWh+S7tueahOaVsOaNrlxyXG4gICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZGF0YUluZm8pO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBlLnRhcmdldC5yZXN1bHQ7IFxyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgIFxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzdWx0XSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxyXG4gICAgICAgIC8vIOS9v+eUqCBCbG9iIOWIm+W7uuS4gOS4quaMh+WQkeexu+Wei+WMluaVsOe7hOeahFVSTCwgVVJMLmNyZWF0ZU9iamVjdFVSTOaYr25ldyBCbG9i5paH5Lu255qE5pa55rOVLOWPr+S7peeUn+aIkOS4gOS4quaZrumAmueahHVybCzlj6/ku6Xnm7TmjqXkvb/nlKgs5q+U5aaC55So5ZyoaW1nLnNyY+S4ilxyXG4gICAgICAgIC8vY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgICAgICB2YXIgaWVfZmlsZU5hbWU9ZmlsZU5hbWUrXCIuXCIrcmVzLmZpbGVUeXBlO1xyXG4gICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLGllX2ZpbGVOYW1lICk7ICAvL+atpOaWueazleexu+S8vOS4iumdoueahOaWueazle+8jOWMuuWIq+WPr+iHquihjOeZvuW6plxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgfVxyXG4gIH0gZWxzZSB7Ly9jaHJvbWUvZmlyZWZveOa1j+iniOWZqFxyXG4gICAgdmFyIHVJbnQ4QXJyYXkgPSAgVWludDhBcnJheS5mcm9tKHJlcy5jb250ZW50KTtcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIHR5cGU6IGBhcHBsaWNhdGlvbi9tc3dvcmRgIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgfSk7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYilcclxuICAgIGxldCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgIGxpbmsuaHJlZiA9IHVybFxyXG4gICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpLy8g5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICBsaW5rLmNsaWNrKClcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluaykgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgXHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGVIdHRwUmVxdWVzdChhcGl1cmwsYXR0YWNobWVudCl7XHJcbiAgbGV0IGJhc2VVUkwgPWNvbmZpZy5iYXNlLmlwICsgJzonICsgY29uZmlnLmJhc2UuYmFja2VuZF9wb3J0XHJcblxyXG4gIGZ1bmN0aW9uIGNyZWF0ZU9iamVjdFVSTChvYmplY3QpIHsgXHJcbiAgICByZXR1cm4gKHdpbmRvdy5VUkwpID8gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwob2JqZWN0KSA6IHdpbmRvdy53ZWJraXRVUkwuY3JlYXRlT2JqZWN0VVJMKG9iamVjdCk7IFxyXG4gIH1cclxuICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgeGhyLm9wZW4oJ2dldCcsIGJhc2VVUkwgKyBhcGl1cmwrICcvJyArIGF0dGFjaG1lbnQuZmlsZVVybCx0cnVlKTsgIC8vdXJs5aGr5YaZ5ZCO5Y+w55qE5o6l5Y+j5Zyw5Z2A77yM5aaC5p6c5pivcG9zdO+8jOWcqGZvcm1EYXRhIGFwcGVuZOWPguaVsO+8iOWPguiAg+WOn+aWh+WcsOWdgO+8iVxyXG4gIHhoci5zZXRSZXF1ZXN0SGVhZGVyKFwiQXV0aG9yaXphdGlvblwiLCAnQmVhcmVyICcgKyBnZXRUb2tlbigpKTtcclxuICB4aHIucmVzcG9uc2VUeXBlID0gJ2Jsb2InO1xyXG4gIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0dXMgPT0gMjAwKSB7YWxlcnQoXCJ4bWxodHRwXCIrSlNPTi5zdHJpbmdpZnkoeGhyLnJlc3BvbnNlKSlcclxuICAgICAgICAgIHZhciBibG9iID0geGhyLnJlc3BvbnNlXHJcbiAgICAgICAgICB2YXIgZmlsZW5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lK1wiLlwiK2F0dGFjaG1lbnQuZmlsZVR5cGU7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlKVxyXG4gICAgICAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLGZpbGVuYW1lKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgICAgIHZhciB1cmwgPSBjcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgYS5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTtcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xyXG4gICAgICAgICAgIGEuY2xpY2soKTtcclxuICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfTtcclxuICB4aHIuc2VuZChmb3JtRGF0YSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkb3dubG9hZEZpbGUocmVzLCBmaWxlTmFtZSkge1xyXG4gIGlmICghcmVzKSB7XHJcbiAgICByZXR1cm5cclxuICB9XHJcbiAgICAgIGltcG9ydChcIkAvdmVuZG9yL0V4cG9ydDJFeGNlbFwiKS50aGVuKChleGNlbCkgPT4ge1xyXG4gICAgICAgIEZpbGVTYXZlci5zYXZlQXMobmV3IEJsb2IoW3Jlc10sIHtcclxuICAgICAgICAgIC8vdHlwZTonYXBwbGljYXRpb24vbXN3b3JkJ1xyXG4gICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgfSk7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRGaWxlVjEocmVzLCBmaWxlTmFtZSkge1xyXG4gICAgaWYgKCFyZXMpIHtcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKSB7ICAvLyBJReS7peWPiklF5YaF5qC455qE5rWP6KeI5ZmoQXJyYXlCdWZmZXJcclxuICAgICAgdHJ5IHthbGVydChcImllXCIpXHJcbiAgICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIC8vIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIC8vIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgIC8vLy/mlrnms5XkuoxcclxuICAgICAgICAvL2xldCB1SW50QXJyYXkgPSBVaW50OEFycmF5LmZyb20ocmVzLmNvbnRlbnQpO2FsZXJ0KHVJbnRBcnJheSlcclxuXHJcbiAgICAgICAgLy/mlrnms5XkuIlcclxuICAgICAgICAvLyBsZXQgdWludEFyciA9IG5ldyBVaW50OEFycmF5KHJlcy5jb250ZW50Lmxlbmd0aCkgLy8g5Yib5bu66KeG5Zu+XHJcbiAgICAgICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCByZXMuY29udGVudC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgLy/mlrnms5Xlm5tcclxuICAgICAgICBpbXBvcnQoXCJAL3ZlbmRvci9FeHBvcnQyRXhjZWxcIikudGhlbigoZXhjZWwpID0+IHtcclxuICAgICAgICAgIC8vdmFyIGllX2ZpbGVOYW1lPWZpbGVOYW1lK1wiLlwiK3Jlcy5maWxlVHlwZTtcclxuICAgICAgICAgIC8vdmFyIGJsb2I9ZXhjZWwuczJhYihyZXMpO1xyXG4gICAgICAgICAgRmlsZVNhdmVyLnNhdmVBcyhuZXcgQmxvYihbcmVzXSwge1xyXG4gICAgICAgICAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAgIH0pLCBmaWxlTmFtZSlcclxuICAgICAgICB9KTtcclxuXHJcblxyXG4gICAgICAgIC8vIGFsZXJ0KFwidWludEFycjpcIitKU09OLnN0cmluZ2lmeSh1aW50QXJyKSlcclxuICAgICAgICAvLyB2YXIgYmxvYiA9IG5ldyBCbG9iKFt1aW50QXJyXSwge1xyXG4gICAgICAgIC8vICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgLy8gICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSdcclxuICAgICAgICAvLyAgICAvL3R5cGU6J2FwcGxpY2F0aW9uL21zd29yZCdcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIC8vIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgICAgLy8gLy8gYWxlcnQoSlNPTi5zdHJpbmdpZnkoYmxvYikpXHJcbiAgICAgICAgLy8gd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsaWVfZmlsZU5hbWUgKTsgIFxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHsvL2Nocm9tZS9maXJlZm945rWP6KeI5ZmoXHJcbiAgICAgIC8vIHZhciB1SW50OEFycmF5ID0gIFVpbnQ4QXJyYXkuZnJvbShyZXMuY29udGVudCk7XHJcbiAgICAgIC8vIGxldCBibG9iID0gbmV3IEJsb2IoW3VJbnQ4QXJyYXldLCB7XHJcbiAgICAgIC8vICAgdHlwZTogJ2FwcGxpY2F0aW9uL21zd29yZCcgLy93b3Jk5paH5qGj5Li6bXN3b3JkLHBkZuaWh+aho+S4unBkZlxyXG4gICAgICAvLyAgIH0pO1xyXG5cclxuICAgICAgLy8vL+aWueazleS4gFxyXG4gICAgICAgIC8vIEFycmF5QnVmZmVyIOWvueixoeeUqOadpeihqOekuumAmueUqOeahOOAgeWbuuWumumVv+W6pueahOWOn+Wni+S6jOi/m+WItuaVsOaNrue8k+WGsuWMulxyXG4gICAgICAgIGxldCBhcnJheUJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uue8k+WGsuaVsOe7hFxyXG4gICAgICAgIGxldCB1SW50QXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcikgLy8g5Yib5bu66KeG5Zu+XHJcblxyXG4gICAgICAgLy8vL+aWueazleS6jCBcclxuICAgICAgLy8gbGV0IHVpbnRBcnIgPSBuZXcgVWludDhBcnJheShyZXMuY29udGVudC5sZW5ndGgpIC8vIOWIm+W7uuinhuWbvlxyXG4gICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHJlcy5jb250ZW50Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIC8vICAgdWludEFycltpXSA9IHJlcy5jb250ZW50LmNoYXJDb2RlQXQoaSlcclxuICAgICAgLy8gfVxyXG5cclxuICAgICAgYWxlcnQoXCJ1aW50QXJyOlwiK0pTT04uc3RyaW5naWZ5KHVJbnRBcnJheSkpXHJcbiAgICAgIHZhciBibG9iID0gbmV3IEJsb2IodUludEFycmF5LCB7XHJcbiAgICAgICAgIC8vdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50O2NoYXJzZXQ9dXRmLTgnXHJcbiAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nIC8vd29yZOaWh+aho+S4um1zd29yZCxwZGbmlofmoaPkuLpwZGZcclxuICAgICAgICAgLy90eXBlOidhcHBsaWNhdGlvbi9tc3dvcmQnXHJcbiAgICAgIH0pXHJcbiAgICAgIHZhciBpZV9maWxlTmFtZT1maWxlTmFtZStcIi5cIityZXMuZmlsZVR5cGU7XHJcbiAgICAgIGxldCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKVxyXG4gICAgICBsZXQgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcclxuICAgICAgbGluay5ocmVmID0gdXJsXHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGllX2ZpbGVOYW1lKS8vIOaWh+S7tuWQjVxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxpbmspXHJcbiAgICAgIGxpbmsuY2xpY2soKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGxpbmspIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpIC8vIOmHiuaUvuaOiWJsb2Llr7nosaFcclxuICAgIH1cclxufVxyXG5cclxuICBcclxuICAvKiogaW1hZ2Ug5LiL6L29ICovXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IGRhdGEgdXJsXHJcbiAgICogQHBhcmFtIHsqfSBmaWxlbmFtZSDlkI3np7BcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRJbWFnZShkYXRhLCBmaWxlbmFtZSkgey8vYWxlcnQoZGF0YStmaWxlbmFtZStcImltZ1wiKVxyXG4gICAgdmFyIGh0dHBpbmRleCA9IGRhdGEuaW5kZXhPZignaHR0cCcpXHJcbiAgICBpZiAoaHR0cGluZGV4ID09PSAwKSB7YWxlcnQoXCJpZlwiKVxyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpXHJcbiAgICAgIC8vIOino+WGs+i3qOWfnyBjYW52YXMg5rGh5p+T6Zeu6aKYXHJcbiAgICAgIGltYWdlLnNldEF0dHJpYnV0ZSgnY3Jvc3NPcmlnaW4nLCAnYW5vbnltb3VzJylcclxuICAgICAgaW1hZ2Uub25sb2FkID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJylcclxuICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aFxyXG4gICAgICAgIGNhbnZhcy5oZWlnaHQgPSBpbWFnZS5oZWlnaHRcclxuICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodClcclxuICAgICAgICBjb25zdCBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJylcclxuICAgICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq54K55Ye75LqL5Lu2XHJcbiAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAgIC8vIOWwhiBhIOeahCBkb3dubG9hZCDlsZ7mgKforr7nva7kuLrmiJHku6zmg7PopoHkuIvovb3nmoTlm77niYfnmoTlkI3np7DvvIzoi6UgbmFtZSDkuI3lrZjlnKjliJnkvb/nlKgn5Zu+54mHJ+S9nOS4uum7mOiupOWQjeensFxyXG4gICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZSB8fCAn5Zu+54mHJ1xyXG4gICAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgICB2YXIgYmxvYiA9IGRhdGFVUkx0b0Jsb2IoZGF0YVVSTClcclxuICAgICAgICBhLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXHJcbiAgICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KVxyXG4gICAgICB9XHJcbiAgICAgIGltYWdlLnNyYyA9IGRhdGFcclxuICAgIH0gZWxzZSB7YWxlcnQoXCJlbHNlLWltZ1wiKVxyXG4gICAgICAvLyDnlJ/miJDkuIDkuKogYSDmoIfnrb5cclxuICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxyXG4gICAgICAvLyDliJvlu7rkuIDkuKrngrnlh7vkuovku7ZcclxuICAgICAgY29uc3QgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKVxyXG4gICAgICAvLyDlsIYgYSDnmoQgZG93bmxvYWQg5bGe5oCn6K6+572u5Li65oiR5Lus5oOz6KaB5LiL6L2955qE5Zu+54mH55qE5ZCN56ew77yM6IulIG5hbWUg5LiN5a2Y5Zyo5YiZ5L2/55SoJ+WbvueJhyfkvZzkuLrpu5jorqTlkI3np7BcclxuICAgICAgYS5kb3dubG9hZCA9IGZpbGVuYW1lIHx8ICflm77niYcnXHJcbiAgICAgIC8vIOWwhueUn+aIkOeahCBVUkwg6K6+572u5Li6IGEuaHJlZiDlsZ7mgKdcclxuICAgICAgLy9hLmhyZWYgPXJlcXVpcmUoXCJEOi9maWxlLzEzOUEyNkNCLUZEMjMtODgzMC1DNjMzLTE5RjYwNjNFODE2MS5qcGdcIik7XHJcbiAgICAgIGEuaHJlZiA9IGRhdGFcclxuICAgICAgLy8g6Kem5Y+RIGEg55qE54K55Ye75LqL5Lu2XHJcbiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBwYXRoICDlkowgbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZTIoZGF0YSkge1xyXG4gIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpXHJcbiAgYS5ocmVmID0gZGF0YS5wYXRoXHJcbiAgYS5kb3dubG9hZCA9IGRhdGEubmFtZSA/IGRhdGEubmFtZSA6ICfmlofku7YnXHJcbiAgYS50YXJnZXQgPSAnX2JsYWNrJ1xyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICBhLmNsaWNrKClcclxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpXHJcbn1cclxuXHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBkYXRhVVJMdG9CbG9iKGRhdGF1cmwpIHtcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBvbmUtdmFyXHJcbiAgICB2YXIgYXJyID0gZGF0YXVybC5zcGxpdCgnLCcpLFxyXG4gICAgICBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV0sXHJcbiAgICAgIGJzdHIgPSBhdG9iKGFyclsxXSksXHJcbiAgICAgIG4gPSBic3RyLmxlbmd0aCxcclxuICAgICAgdThhcnIgPSBuZXcgVWludDhBcnJheShuKVxyXG4gICAgd2hpbGUgKG4tLSkge1xyXG4gICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFt1OGFycl0sIHtcclxuICAgICAgdHlwZTogbWltZVxyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2U2NEltYWdlKGltZykge1xyXG4gICAgdmFyIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpXHJcbiAgICBjYW52YXMud2lkdGggPSBpbWcud2lkdGhcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBpbWcuaGVpZ2h0XHJcbiAgICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJylcclxuICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBpbWcud2lkdGgsIGltZy5oZWlnaHQpXHJcbiAgICB2YXIgZXh0ID0gaW1nLnNyYy5zdWJzdHJpbmcoaW1nLnNyYy5sYXN0SW5kZXhPZignLicpICsgMSkudG9Mb3dlckNhc2UoKVxyXG4gICAgdmFyIGRhdGFVUkwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS8nICsgZXh0KVxyXG4gICAgcmV0dXJuIGRhdGFVUkxcclxuICB9XHJcbiAgXHJcbiAgLy8g6I635Y+W57uR5a6a5Y+C5pWwXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGd1aWQoKSB7XHJcbiAgICBmdW5jdGlvbiBTNCgpIHtcclxuICAgICAgcmV0dXJuICgoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDB4MTAwMDApIHwgMCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIChTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSArIFM0KCkgKyBTNCgpICsgUzQoKSlcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog6YeR6aKd5qC85byP5YyWIOWinuWKoOWNg+WIhuesplxyXG4gICAqIEBwYXJhbSB7Kn0gdmFsXHJcbiAgICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIG1vbmV5Rm9ybWF0KHZhbCkge1xyXG4gICAgaWYgKCF2YWwpIHJldHVybiAnMC4wMCdcclxuICAgIGNvbnN0IGkgPSBNYXRoLmZsb29yKHZhbClcclxuICAgIGNvbnN0IGQgPSB2YWwuc3BsaXQoJy4nKVsxXSB8fCAnMDAnXHJcbiAgICByZXR1cm4gaS50b0xvY2FsZVN0cmluZygnZW4tVVMnKSArICcuJyArIGRcclxuICB9XHJcbiAgXHJcbiAgLyoqXHJcbiAgICog5LiL6L29ZXhjZWxcclxuICAgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZG93bmxvYWRFeGNlbFdpdGhSZXNEYXRhKHJlcykge1xyXG4gICAgbGV0IGZpbGVOYW1lID0gcmVzLmhlYWRlcnNbJ2NvbnRlbnQtZGlzcG9zaXRpb24nXS5zcGxpdCgnZmlsZW5hbWU9JylbMV1cclxuICAgIGlmICghZmlsZU5hbWUpIHtcclxuICAgICAgZmlsZU5hbWUgPSByZXMuaGVhZGVyc1snY29udGVudC1kaXNwb3NpdGlvbiddLnNwbGl0KCdVVEYtOFxcJ1xcJycpWzFdXHJcbiAgICB9XHJcbiAgICBmaWxlTmFtZSA9IGZpbGVOYW1lID8gZmlsZU5hbWUucmVwbGFjZSgvXFxcIi9nLCAnJykgOiAnZmlsZS54bHN4J1xyXG4gICAgZmlsZU5hbWUgPSBkZWNvZGVVUkkoZmlsZU5hbWUpIHx8ICcnXHJcbiAgICBkb3dubG9hZEZpbGVXaXRoQnVmZmVyKHJlcy5kYXRhLCBmaWxlTmFtZSwgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbDtjaGFyc2V0PXV0Zi04JylcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkRmlsZVdpdGhCdWZmZXIoZGF0YSwgbmFtZSwgdHlwZSkge1xyXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbZGF0YV0sIHtcclxuICAgICAgdHlwZTogdHlwZSB8fCAnJ1xyXG4gICAgfSlcclxuICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcclxuICAgIHZhciBocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lXHJcbiAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IGhyZWZcclxuICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IG5hbWUgLy8g5LiL6L295ZCO5paH5Lu25ZCNXHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudClcclxuICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpIC8vIOeCueWHu+S4i+i9vVxyXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oFxyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoaHJlZikgLy8g6YeK5pS+5o6JYmxvYuWvueixoVxyXG4gIH1cclxuICAiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///a611\n")},ac9e:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYwNDE5QkVERTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYwNDE5QkVFRTk3MjExRThBRjM0RUJDOEE4QzJBRTRBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjA0MTlCRUJFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjA0MTlCRUNFOTcyMTFFOEFGMzRFQkM4QThDMkFFNEEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6n6AUeAAAA0klEQVR42mK8vbn0MAMDgw0DEeD/v38MQoL8089dvVcA5P6CiTMRawAI/P79m4GVlSXTQEuxB8hlQzaEaPDnF8RydjbWXGSDSDLk////DJ8/fYYbpKsutxBkEAsphrCwsjLcv3uf4fvXrwzs7OwMvAICEUDhNJIMYWVjYxAUEWHg5ednYGRkZGAB8hm+fvpJkiFMzMwM7JycYIwEfmEYouLThdOQO1vKsIozAtPJf1yaQAbi0ohsBkmxg9Obo4aQZggRMTMasHgMOUKB/qMgAiDAAJJLMzKU3PGOAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3R4dC5wbmc/MTIzYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYWM5ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2tZd05ERTVRa1ZFUlRrM01qRXhSVGhCUmpNMFJVSkRPRUU0UXpKQlJUUkJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPa1l3TkRFNVFrVkZSVGszTWpFeFJUaEJSak0wUlVKRE9FRTRRekpCUlRSQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZSakEwTVRsQ1JVSkZPVGN5TVRGRk9FRkdNelJGUWtNNFFUaERNa0ZGTkVFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlJqQTBNVGxDUlVORk9UY3lNVEZGT0VGR016UkZRa000UVRoRE1rRkZORUVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo2bjZBVWVBQUFBMGtsRVFWUjQybUs4dmJuME1BTURndzBERWVEL3YzOE1Rb0w4MDg5ZHZWY0E1UDZDaVRNUmF3QUkvUDc5bTRHVmxTWFRRRXV4QjhobFF6YUVhUERuRjhSeWRqYldYR1NEU0RMay8vLy9ESjgvZllZYnBLc3V0eEJrRUFzcGhyQ3dzakxjdjN1ZjRmdlhyd3pzN093TXZBSUNFVURoTkpJTVlXVmpZeEFVRVdIZzVlZG5ZR1JrWkdBQjhobStmdnBKa2lGTXpNd003SnljWUl3RWZtRVlvdUxUaGRPUU8xdktzSW96QXRQSmYxeWFRQWJpMG9oc0JrbXhnOU9ibzRhUVpnZ1JNVE1hc0hnTU9VS0IvcU1nQWlEQUFKSkxNektVM1BHT0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///ac9e\n')},b720:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjYxMjZBODQ3RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjYxMjZBODQ4RTJGRDExRTg5NDdEQUUyQjM1NDQ5ODdBIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjEyNkE4NDVFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjEyNkE4NDZFMkZEMTFFODk0N0RBRTJCMzU0NDk4N0EiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7zaedtAAABPElEQVR42mIsPBd0mIGBwYaBCPD//38Gb02P6XuvHCkAcn/BxJmINQAEfv/9w8DLwZvppuvQA+SyIRtCNPj95w+Y5mLnzEU2iCRDgB5iePL+KdwgK3XThSCDWEgxgpmZmWHthU0M33/+YGBjZWPg5eSOEGUTTyPJEDZmVgYBHj6QZiCPkYGVBaz9J0mGMDExMXAwsTMwsCIJ/mH4hRImuaotYEwqwAxYRkYMIS0+YzDGBn6yfGVA8c7k2zUYiliYWBkCZZKBZjMy3Lp+ieHPv9+EXaIvYAnGMOAsFsggzC7OIMQmBmZjAygu4WbhYwiWTQWz7365xsAGDERn8SCEgUD26XcHGN79eoXbJSGyaQw8LPxgDDIsCOgNkHeQvRYkm4LfJQvv9zCQA5gYqABGDcFuyBEK9B8FEQABBgC1hkUeLMx6YgAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX2ltZy5wbmc/NGY1NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYjcyMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2pZeE1qWkJPRFEzUlRKR1JERXhSVGc1TkRkRVFVVXlRak0xTkRRNU9EZEJJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPall4TWpaQk9EUTRSVEpHUkRFeFJUZzVORGRFUVVVeVFqTTFORFE1T0RkQklqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOakV5TmtFNE5EVkZNa1pFTVRGRk9EazBOMFJCUlRKQ016VTBORGs0TjBFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5qRXlOa0U0TkRaRk1rWkVNVEZGT0RrME4wUkJSVEpDTXpVME5EazROMEVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo3emFlZHRBQUFCUEVsRVFWUjQybUlzUEJkMG1JR0J3WWFCQ1BELy8zOEdiMDJQNlh1dkhDa0Fjbi9CeEptSU5RQUVmdi85dzhETHdadnBwdXZRQStTeUlSdENOUGo5NXcrWTVtTG56RVUyaUNSRGdCNWllUEwrS2R3Z0szWFRoU0NEV0VneGdwbVptV0h0aFUwTTMzLytZR0JqWldQZzVlU09FR1VUVHlQSkVEWm1WZ1lCSGo2UVppQ1BrWUdWQmF6OUowbUdNREV4TVhBd3NUTXdzQ0lKL21INGhSSW11YW90WUV3cXdBeFlSa1lNSVMwK1l6REdCbjZ5ZkdWQThjN2syelVZaWxpWVdCa0NaWktCWmpNeTNMcCtpZUhQdjkrRVhhSXZZQW5HTU9Bc0ZzZ2d6QzdPSU1RbUJtWmpBeWd1NFdiaFl3aVdUUVd6NzM2NXhzQUdERVJuOFNDRWdVRDI2WGNIR043OWVvWGJKU0d5YVF3OExQeGdERElzQ09nTmtIZVF2UllrbTRMZkpRdnY5ekNRQTVnWXFBQkdEY0Z1eUJFSzlCOEZFUUFCQmdDMWhrVWVMTXg2WWdBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///b720\n')},bcf5:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d6fd");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_detail_vue_vue_type_style_index_0_id_224324f7_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/M2NhZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUEiLCJmaWxlIjoiYmNmNS5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL2NsaS1zZXJ2aWNlL25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2xvYWRlci5qcz8/cmVmLS05LW9uZU9mLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8/cmVmLS05LW9uZU9mLTEtMiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tOS1vbmVPZi0xLTMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjI0MzI0ZjcmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///bcf5\n')},c2ec:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZFQTA1QjNBRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZFQTA1QjNCRTJGRDExRThBOTk5Q0E3QzQ0N0I1MjcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkVBMDVCMzhFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkVBMDVCMzlFMkZEMTFFOEE5OTlDQTdDNDQ3QjUyNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4N5XgSAAAA9ElEQVR42mL8n59yhIGBwZqBCPD/3z8GBlvn6c/nTC0Acn/BxJmINQAE/v36xcDIy5cpnpTZA+SyIRvCQIohIMDML5CLbBBJhjD8Z2D4++QxwqCoxIUgg1hIMYOJlYXh55b1DH8+f2Fg4uRkYBMSiAAKp5FmCDs7A7uYKAOroCADAyOQzwb2zU/shkyYjcr/9JGBYfkCBsbrVxiYubgYmFFlf+F2SUEqgq2kwsCQkMHAUFeC3YVE+ePeHQYGPn6sUlKaWkQaoqgC8RIOgNs7yOHy8QMDw4qFZBiCHCaEYo2BCmCwG0JCeAzTMDlKgX6wXoAAAwBiOzgTy3pOjAAAAABJRU5ErkJggg=="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3BwdC5wbmc/MGE0NCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUMiLCJmaWxlIjoiYzJlYy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJFQUFBQVVDQVlBQUFCcm9OWkpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlacFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1Tmkxak1UUXlJRGM1TGpFMk1Ea3lOQ3dnTWpBeE55OHdOeTh4TXkwd01Ub3dOam96T1NBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVORElESXdNVGdnS0ZkcGJtUnZkM01wSWlCNGJYQk5UVHBKYm5OMFlXNWpaVWxFUFNKNGJYQXVhV2xrT2paRlFUQTFRak5CUlRKR1JERXhSVGhCT1RrNVEwRTNRelEwTjBJMU1qY3hJaUI0YlhCTlRUcEViMk4xYldWdWRFbEVQU0o0YlhBdVpHbGtPalpGUVRBMVFqTkNSVEpHUkRFeFJUaEJPVGs1UTBFM1F6UTBOMEkxTWpjeElqNGdQSGh0Y0UxTk9rUmxjbWwyWldSR2NtOXRJSE4wVW1WbU9tbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZOa1ZCTURWQ016aEZNa1pFTVRGRk9FRTVPVGxEUVRkRE5EUTNRalV5TnpFaUlITjBVbVZtT21SdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk5rVkJNRFZDTXpsRk1rWkVNVEZGT0VFNU9UbERRVGRETkRRM1FqVXlOekVpTHo0Z1BDOXlaR1k2UkdWelkzSnBjSFJwYjI0K0lEd3ZjbVJtT2xKRVJqNGdQQzk0T25odGNHMWxkR0UrSUR3L2VIQmhZMnRsZENCbGJtUTlJbklpUHo0TjVYZ1NBQUFBOUVsRVFWUjQybUw4bjU5eWhJR0J3WnFCQ1BELzN6OEdCbHZuNmMvblRDMEFjbi9CeEptSU5RQUUvdjM2eGNESXk1Y3BucFRaQStTeUlSdkNRSW9oSU1ETUw1Q0xiQkJKaGpEOFoyRDQrK1F4d3FDb3hJVWdnMWhJTVlPSmxZWGg1NWIxREg4K2YyRmc0dVJrWUJNU2lBQUtwNUZtQ0RzN0E3dVlLQU9yb0NBREF5T1F6d2IyelUvc2hreVlqY3IvOUpHQllma0NCc2JyVnhpWXViZ1ltRkZsZitGMlNVRXFncTJrd3NDUWtNSEFVRmVDM1lWRStlUGVIUVlHUG42c1VsS2FXa1Fhb3FnQzhSSU9nTnM3eU9IeThRTUR3NHFGWkJpQ0hDYUVZbzJCQ21Dd0cwSkNlQXpUTURsS2dYNndYb0FBQXdCaU96Z1R5M3BPakFBQUFBQkpSVTVFcmtKZ2dnPT1cIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///c2ec\n')},ceae:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=template&id=e45a1592&scoped=true&\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'div\',{ref:"box"},[_c(\'flexbox\',{staticClass:"content-header"},[_c(\'el-form\',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSearch),expression:"showSearch"}],ref:"queryForm",attrs:{"model":_vm.listQuery,"inline":true}},[_c(\'el-form-item\',{attrs:{"label":"生产线:","prop":"productType"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.ptypeselectChange},model:{value:(_vm.listQuery.productType),callback:function ($$v) {_vm.$set(_vm.listQuery, "productType", $$v)},expression:"listQuery.productType"}},_vm._l((_vm.productTypeList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.name,"value":item.id}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"","prop":"productLine"}},[_c(\'el-select\',{staticStyle:{"margin-right":"15px"},attrs:{"clearable":"","placeholder":"请选择","size":"medium"},on:{"change":_vm.valueselectChange},model:{value:(_vm.listQuery.productLine),callback:function ($$v) {_vm.$set(_vm.listQuery, "productLine", $$v)},expression:"listQuery.productLine"}},_vm._l((_vm.PLChildList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.productLineName,"value":item.productLineCode}})}),1)],1),_c(\'el-form-item\',{attrs:{"label":"版本:","prop":"Version"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.Version),callback:function ($$v) {_vm.$set(_vm.listQuery, "Version", $$v)},expression:"listQuery.Version"}})],1),_c(\'el-form-item\',{attrs:{"label":"大众顺序号:","prop":"HostSNBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNBegin", $$v)},expression:"listQuery.HostSNBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"HostSNEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.HostSNEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "HostSNEnd", $$v)},expression:"listQuery.HostSNEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"KNRBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNRBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNRBegin", $$v)},expression:"listQuery.KNRBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"KNREnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.KNREnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "KNREnd", $$v)},expression:"listQuery.KNREnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"VINBegin"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINBegin),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINBegin", $$v)},expression:"listQuery.VINBegin"}})],1),_c(\'el-form-item\',{attrs:{"label":"-","prop":"VINEnd"}},[_c(\'el-input\',{staticStyle:{"width":"240px"},attrs:{"placeholder":"","clearable":"","size":"small"},nativeOn:{"keyup":function($event){if(!$event.type.indexOf(\'key\')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.handleQuery($event)}},model:{value:(_vm.listQuery.VINEnd),callback:function ($$v) {_vm.$set(_vm.listQuery, "VINEnd", $$v)},expression:"listQuery.VINEnd"}})],1),_c(\'el-form-item\',{attrs:{"label":"上线日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\',\'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.OnlineTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "OnlineTimeValue", $$v)},expression:"listQuery.OnlineTimeValue"}})],1),_c(\'el-form-item\',{attrs:{"label":"接收日期"}},[_c(\'el-date-picker\',{staticStyle:{"width":"380px"},attrs:{"size":"small","value-format":"yyyy-MM-dd HH:mm:ss","type":"datetimerange","default-time":[\'00:00:00\',\'23:59:59\'],"range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期"},model:{value:(_vm.listQuery.ReceiveTimeValue),callback:function ($$v) {_vm.$set(_vm.listQuery, "ReceiveTimeValue", $$v)},expression:"listQuery.ReceiveTimeValue"}})],1),_c(\'el-form-item\',[_c(\'el-button\',{attrs:{"type":"primary","icon":"el-icon-search","size":"mini"},on:{"click":_vm.handleFilter}},[_vm._v("搜索")]),_c(\'el-button\',{attrs:{"icon":"el-icon-refresh","size":"mini"},on:{"click":function($event){return _vm.resetQuery(\'queryForm\')}}},[_vm._v("重置")]),_c(\'el-button\',{staticStyle:{"margin-left":"15px"},attrs:{"type":"warning","plain":"","icon":"el-icon-download","size":"mini"},on:{"click":function($event){return _vm.handleDownload()}}},[_vm._v("导出(Excel) ")])],1),_c(\'el-form-item\',{staticStyle:{"margin-bottom":"0px","margin-top":"-1px"}},[_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-plus"},on:{"click":_vm.handleCreate}},[_vm._v("新增 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-edit"},on:{"click":_vm.handleUpdate}},[_vm._v("修改 ")]),_c(\'el-button\',{staticClass:"filter-item",attrs:{"size":"mini","type":"primary","icon":"el-icon-delete"},on:{"click":_vm.handleDelete}},[_vm._v("删除 ")])],1)],1)],1)],1),_c(\'div\',{staticClass:"l-table",staticStyle:{"margin-top":"-9px"}},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick}},[_c(\'el-table-column\',{attrs:{"label":"底盘号","prop":"vin ","sortable":"custom","align":"center","width":"180px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'span\',{staticClass:"link-type",on:{"click":function($event){return _vm.handleDrawerOpen(scope.row)}}},[_vm._v(_vm._s(scope.row.vin))])]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})})],2),_c(\'el-dialog\',{attrs:{"visible":_vm.dialogFormVisible,"close-on-click-modal":false,"title":_vm.formTitle,"width":"1000px"},on:{"update:visible":function($event){_vm.dialogFormVisible=$event}}},[_c(\'el-form\',{ref:"form",attrs:{"inline":true,"model":_vm.form,"rules":_vm.rules,"size":"small","label-width":"120px"}},[_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"KNR:","prop":"knr","required":""}},[_c(\'el-select\',{staticStyle:{"width":"350px"},attrs:{"placeholder":"请选择添加M100信息对应的KNR号","filterable":"","disabled":false},on:{"change":_vm.getVModel},model:{value:(_vm.form.knr),callback:function ($$v) {_vm.$set(_vm.form, "knr", $$v)},expression:"form.knr"}},_vm._l((_vm.KNRlist),function(item){return _c(\'el-option\',{key:item.knr,attrs:{"label":item.knr,"value":item.knr}})}),1)],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"车型:","prop":"vehicleModelCode","required":""}},[_c(\'el-select\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},on:{"change":_vm.vMchange},model:{value:(_vm.form.vehicleModelCode),callback:function ($$v) {_vm.$set(_vm.form, "vehicleModelCode", $$v)},expression:"form.vehicleModelCode"}},_vm._l((_vm.vehicleModelList),function(item){return _c(\'el-option\',{key:item.id,attrs:{"label":item.dicItemName,"value":item.dicItemCode}})}),1)],1)],1),_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"底盘号:","prop":"vin","required":""}},[_c(\'el-input\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},model:{value:(_vm.form.vin),callback:function ($$v) {_vm.$set(_vm.form, "vin", $$v)},expression:"form.vin"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"大众顺序号:","prop":"hostSN","required":""}},[_c(\'el-input\',{staticStyle:{"width":"350px"},attrs:{"disabled":false},model:{value:(_vm.form.hostSN),callback:function ($$v) {_vm.$set(_vm.form, "hostSN", $$v)},expression:"form.hostSN"}})],1)],1),_c(\'el-col\',{attrs:{"span":12}},[_c(\'el-form-item\',{attrs:{"label":"上线日期:","prop":"onlineTime","required":""}},[_c(\'el-date-picker\',{staticStyle:{"width":"350px"},attrs:{"type":"datetime","value-format":"yyyy-MM-dd HH:mm:ss","placeholder":"选择时间","disabled":false},model:{value:(_vm.form.onlineTime),callback:function ($$v) {_vm.$set(_vm.form, "onlineTime", $$v)},expression:"form.onlineTime"}})],1)],1)],1),_c(\'el-row\',[_c(\'el-col\',{attrs:{"span":12}},[_c(\'div\',{staticStyle:{"border":"1px solid #E4E4E4","width":"94%"}},[_c(\'el-row\',[_c(\'div\',{staticStyle:{"background":"#F1F1F1","width":"100%","height":"30px","line-height":"31px"}},[_c(\'label\',{staticStyle:{"margin-left":"15px"}},[_vm._v("ERP总成")])])]),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"LeftDetialTable",staticClass:"cr-table",staticStyle:{"width":"95%","margin":"10px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.leftdetails,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""},on:{"row-click":_vm.handleLeftRowClick,"selection-change":_vm.handleLeftSelectionChange}},[_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyCode","label":"ERP总成编号","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.erpAssemblyCode),callback:function ($$v) {_vm.$set(scope.row, "erpAssemblyCode", $$v)},expression:"scope.row.erpAssemblyCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyName","label":"ERP总成名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.erpAssemblyName),callback:function ($$v) {_vm.$set(scope.row, "erpAssemblyName", $$v)},expression:"scope.row.erpAssemblyName"}})]}}])}),_c(\'el-table-column\',{attrs:{"width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleLeftDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddLeftDetails}})],1)],2)],1)],1)],1)]),_c(\'el-col\',{attrs:{"span":12}},[_c(\'div\',{staticStyle:{"border":"1px solid #E4E4E4","width":"94%"}},[_c(\'el-row\',[_c(\'div\',{staticStyle:{"background":"#F1F1F1","width":"100%","height":"30px","line-height":"31px"}},[_c(\'label\',{staticStyle:{"margin-left":"15px"}},[_vm._v("ERP结算件")])])]),_c(\'el-row\',[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"DetialTable",staticClass:"cr-table",staticStyle:{"width":"95%","margin":"10px"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.form.rightdetails,"height":_vm.detailTableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":""}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码","width":"150px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{staticStyle:{"width":"135px"},attrs:{"size":"mini"},model:{value:(scope.row.partCode),callback:function ($$v) {_vm.$set(scope.row, "partCode", $$v)},expression:"scope.row.partCode"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"客户零件名称"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input\',{attrs:{"size":"mini"},model:{value:(scope.row.description),callback:function ($$v) {_vm.$set(scope.row, "description", $$v)},expression:"scope.row.description"}})]}}])}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量","width":"120px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-input-number\',{staticStyle:{"width":"100px"},attrs:{"min":1,"size":"mini"},model:{value:(scope.row.partNum),callback:function ($$v) {_vm.$set(scope.row, "partNum", $$v)},expression:"scope.row.partNum"}})]}}])}),_c(\'el-table-column\',{attrs:{"width":"35px"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-button\',{attrs:{"icon":"el-icon-minus","type":"text"},on:{"click":function($event){return _vm.handleRightDeleteDetails(scope.$index, scope.row)}}})]}}])},[_c(\'template\',{slot:"header"},[_c(\'el-button\',{attrs:{"icon":"el-icon-plus","type":"text"},on:{"click":_vm.handleAddRightDetails}})],1)],2)],1)],1)],1)])],1)],1),_c(\'div\',{staticClass:"dialog-footer",attrs:{"slot":"footer"},slot:"footer"},[_c(\'el-button\',{attrs:{"type":"text"},on:{"click":function($event){_vm.dialogFormVisible = false}}},[_vm._v("取消")]),_c(\'el-button\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.formLoading),expression:"formLoading"}],attrs:{"type":"primary"},on:{"click":_vm.save}},[_vm._v("确认")])],1)],1)],1),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}}),_c(\'el-drawer\',{attrs:{"title":"信息详细页","size":"75%","direction":"rtl","visible":_vm.drawer,"before-close":_vm.handleDrawerClose},on:{"update:visible":function($event){_vm.drawer=$event}}},[_c(\'div\',[_c(\'Detail\',{staticStyle:{"margin-top":"-35px"},attrs:{"customerInfos":_vm.customerInfos}})],1)])],1)])}\nvar staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=template&id=e45a1592&scoped=true&\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.sort.js\nvar es6_array_sort = __webpack_require__("55dd");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__("ac6a");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js\nvar objectSpread2 = __webpack_require__("5530");\n\n// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js\nvar defineProperty = __webpack_require__("ade3");\n\n// EXTERNAL MODULE: ./src/components/Pagination/index.vue + 4 modules\nvar Pagination = __webpack_require__("333d");\n\n// EXTERNAL MODULE: ./src/directive/permission/index.js + 1 modules\nvar permission = __webpack_require__("4381");\n\n// EXTERNAL MODULE: ./src/views/pg-fis/components/CRMTableHead.vue + 24 modules\nvar CRMTableHead = __webpack_require__("8bf0");\n\n// EXTERNAL MODULE: ./src/components/ImportExcel-vw/index.vue + 4 modules\nvar ImportExcel_vw = __webpack_require__("ad84");\n\n// EXTERNAL MODULE: ./node_modules/lockr/lockr.js\nvar lockr = __webpack_require__("e297");\n\n// EXTERNAL MODULE: ./node_modules/moment/moment.js\nvar moment = __webpack_require__("c1df");\nvar moment_default = /*#__PURE__*/__webpack_require__.n(moment);\n\n// EXTERNAL MODULE: ./node_modules/vuex/dist/vuex.esm.js\nvar vuex_esm = __webpack_require__("2f62");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"8da28326-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=template&id=224324f7&scoped=true&\nvar detailvue_type_template_id_224324f7_scoped_true_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\'div\',{staticClass:"cr-body-content"},[_c(\'el-table\',{directives:[{name:"loading",rawName:"v-loading",value:(_vm.listLoading),expression:"listLoading"}],ref:"multipleTable",staticClass:"cr-table",staticStyle:{"width":"100%"},attrs:{"element-loading-text":"拼命加载中...","element-loading-spinner":"el-icon-loading","data":_vm.list,"height":_vm.tableHeight,"cell-style":_vm.cellStyle,"header-cell-style":_vm.headerRowStyle,"size":"small","stripe":"","border":"","highlight-current-row":"","row-key":_vm.getRowKeys,"expand-row-keys":_vm.expands},on:{"sort-change":_vm.sortChange,"selection-change":_vm.handleSelectionChange,"row-click":_vm.handleRowClick,"expand-change":_vm.exChange}},[_c(\'el-table-column\',{attrs:{"type":"expand","prop":"details"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [_c(\'el-table\',{attrs:{"data":scope.row.details}},[_c(\'el-table-column\',{attrs:{"prop":"partCode","label":"客户零件代码"}}),_c(\'el-table-column\',{attrs:{"prop":"partNum","label":"客户零件数量"}}),_c(\'el-table-column\',{attrs:{"prop":"description","label":"描述"}}),_c(\'el-table-column\',{attrs:{"prop":"isKey","label":"是否Key件"},scopedSlots:_vm._u([{key:"default",fn:function(scope){return [(scope.row.isKey == true)?_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#00b46d"}},[_vm._v("是")])]):_c(\'span\',[_c(\'span\',{staticStyle:{"color":"#d75c89"}},[_vm._v("否")])])]}}],null,true)})],1)]}}])}),_vm._l((_vm.getDefaultField),function(item,index){return _c(\'el-table-column\',{key:index,attrs:{"prop":item.prop,"label":item.label,"min-width":item.width,"formatter":_vm.fieldFormatter,"sortable":"custom","show-overflow-tooltip":"","gutter":0},scopedSlots:_vm._u([{key:"header",fn:function(scope){return [_vm._v(" "+_vm._s(scope.column.label)+" ")]}}],null,true)})}),_c(\'el-table-column\',{attrs:{"prop":"erpAssemblyVersion","label":"总成版本号","sortable":"","width":"360"}})],2),_c(\'div\',{staticClass:"table-footer"},[_c(\'pagination\',{directives:[{name:"show",rawName:"v-show",value:(_vm.totalCount > 0),expression:"totalCount > 0"}],attrs:{"total":_vm.totalCount,"page":_vm.page,"limit":_vm.listQuery.MaxResultCount},on:{"update:page":function($event){_vm.page=$event},"update:limit":function($event){return _vm.$set(_vm.listQuery, "MaxResultCount", $event)},"pagination":_vm.getList}})],1)],1)}\nvar detailvue_type_template_id_224324f7_scoped_true_staticRenderFns = []\n\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=template&id=224324f7&scoped=true&\n\n// EXTERNAL MODULE: ./src/utils/crmindex.js\nvar crmindex = __webpack_require__("a611");\n\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=script&lang=js&\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n // secondary package based on el-pagination\n\n\n\n\n\n/* harmony default export */ var detailvue_type_script_lang_js_ = ({\n name: "sendUnsettledDiffReport",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n props: {\n customerInfos: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n crmType: "stockFisDiffReport",\n rules: {\n //前端定义的规则,后端也有验证\n erpMaterialCode: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n expands: [],\n //只展开一行放入当前行id\n getRowKeys: function getRowKeys(row) {\n return row.id; //这里看这一行中需要根据哪个属性值是id\n },\n searchContent: "",\n // 输入内容\n customerInfo: {\n parentId: ""\n },\n form: {\n dicDetailID: "",\n customerId: "",\n projectId: ""\n },\n list: null,\n totalCount: 0,\n listLoading: true,\n formLoading: false,\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n Filters: [{\n logic: 0,\n column: "Enabled",\n action: 0,\n value: "true"\n } //默认查询可用的\n ],\n SkipCount: 0,\n MaxResultCount: 15,\n id: ""\n },\n page: 1,\n dialogFormVisible: false,\n multipleSelection: [],\n formTitle: "",\n drawer: false,\n showExcelImport: false,\n tableHeight: document.documentElement.clientHeight - 30,\n isEdit: false\n };\n },\n mounted: function mounted() {\n var self = this;\n\n window.onresize = function () {\n var offsetHei = document.documentElement.clientHeight;\n self.tableHeight = offsetHei - 30;\n };\n },\n created: function created() {\n this.getList();\n },\n watch: {\n customerInfos: {\n handler: function handler(newVal) {\n var _this = this;\n\n if (newVal == "" || newVal == "undefined") {//TODO\n } else {\n newVal.forEach(function (element) {\n _this.customerInfo.parentId = element.ParentId;\n });\n\n if (this.customerInfo.parentId != "") {\n this.getList();\n }\n }\n },\n immediate: true\n }\n },\n computed: {\n /** 列表字段 */\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "总成编号",\n prop: "erpAssemblyCode",\n width: 160\n });\n tempsTabs.push({\n label: "总成名称",\n prop: "erpAssemblyName",\n width: 160\n }); // tempsTabs.push({\n // label: "总成版本号",\n // prop: "erpAssemblyName",\n // width: 160,\n // });\n\n return tempsTabs;\n }\n },\n methods: {\n exChange: function exChange(row, rowList) {\n this.loading = true;\n var that = this;\n\n if (rowList.length) {\n that.expands = [];\n\n if (row) {\n that.expands.push(row.id); // 只展开当前行id\n }\n } else {\n that.expands = [];\n }\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n return row[column.property] || "--";\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false;\n this.getList();\n },\n getList: function getList() {\n var _this2 = this;\n\n this.listLoading = true;\n console.log("详表条件:" + JSON.stringify(this.customerInfo.parentId)); //alert("详表条件:" + JSON.stringify(this.customerInfo.parentId));\n\n var vehicleAssemblyId = {\n vehicleAssemblyId: this.customerInfo.parentId\n };\n this.$axios.gets("/api/newjit/assembly-cfg-vehicle/list", vehicleAssemblyId).then(function (response) {\n _this2.list = response;\n setTimeout(function () {\n //大数据量加载时\n _this2.listLoading = false;\n }, 500);\n }).catch(function () {\n _this2.listLoading = false;\n });\n },\n\n /** 筛选操作 */\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n this.listQuery.Filters = [];\n\n if (this.searchContent != "") {\n var column = "partCode";\n var filter = {\n logic: 0,\n column: column,\n action: 6,\n value: this.searchContent\n };\n this.listQuery.Filters.push(filter);\n }\n\n this.getList();\n },\n resetQuery: function resetQuery() {},\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref) {\n var row = _ref.row,\n column = _ref.column,\n rowIndex = _ref.rowIndex,\n columnIndex = _ref.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "fisQty" || column.property === "diffQty" || column.property === "stockQty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n }\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=script&lang=js&\n /* harmony default export */ var m100BIll_detailvue_type_script_lang_js_ = (detailvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue?vue&type=style&index=0&id=224324f7&lang=scss&scoped=true&\nvar detailvue_type_style_index_0_id_224324f7_lang_scss_scoped_true_ = __webpack_require__("bcf5");\n\n// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js\nvar componentNormalizer = __webpack_require__("2877");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/detail.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(componentNormalizer["a" /* default */])(\n m100BIll_detailvue_type_script_lang_js_,\n detailvue_type_template_id_224324f7_scoped_true_render,\n detailvue_type_template_id_224324f7_scoped_true_staticRenderFns,\n false,\n null,\n "224324f7",\n null\n \n)\n\n/* harmony default export */ var detail = (component.exports);\n// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=script&lang=js&\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n //组件计量单位\n\nvar bomUnit = [{\n key: 0,\n display_name: "PC"\n}, {\n key: 1,\n display_name: "TON"\n}, {\n key: 2,\n display_name: "Other"\n}];\nvar projectTypeKeyValue = bomUnit.reduce(function (acc, cur) {\n acc[cur.key] = cur.display_name;\n return acc;\n}, {});\n/* harmony default export */ var m100BIllvue_type_script_lang_js_ = ({\n name: "m100Bill",\n components: {\n Pagination: Pagination["a" /* default */],\n CRMTableHead: CRMTableHead["a" /* default */],\n importExcel: ImportExcel_vw["a" /* default */],\n Detail: detail\n },\n directives: {\n permission: permission["a" /* default */]\n },\n filters: {\n IsCustomerSignFilter: function IsCustomerSignFilter(status) {\n //翻译是否签字\n var statusMap = {\n true: "是",\n false: "否"\n };\n return statusMap[status];\n }\n },\n data: function data() {\n var _ref;\n\n var validVersion = function validVersion(rule, value, callback) {\n var numberReg = /^\\d{6}$/;\n\n if (!numberReg.test(value)) {\n callback(new Error("只能为6位数字!"));\n } else {\n callback();\n }\n };\n\n return _ref = {\n crmType: "m100Bill",\n rules: {\n erpAssemblyName: [{\n required: true,\n message: "必须输入!",\n trigger: "blur"\n }]\n },\n valueSelect: "",\n customerInfos: [],\n dialogOptions: [],\n versionValue: "",\n searchContent: "",\n // 输入内容\n showExcelImport: false,\n form: {},\n drawer: false,\n list: null,\n totalCount: 0,\n listLoading: true,\n customerInfo: {\n bomId: ""\n },\n // 高级搜索\n filterObj: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n listQuery: {\n SkipCount: 0,\n MaxResultCount: 15,\n productType: 1,\n ProductLine: undefined,\n version: undefined,\n HostSNBegin: undefined,\n HostSNEnd: undefined,\n KNRBegin: undefined,\n KNREnd: undefined,\n VINBegin: undefined,\n VINEnd: undefined,\n OnlineTimeValue: undefined,\n OnlineTimeBegin: undefined,\n OnlineTimeEnd: undefined,\n ReceiveTimeValue: undefined,\n ReceiveTimeBegin: undefined,\n ReceiveTimeEnd: undefined\n },\n listExportQuery: {\n erpAssemblyCode: undefined,\n erpAssemblyName: undefined\n },\n listPLQuery: {\n BillType: 2 //UserId: "00000000-0000-0000-0000-000000000000",\n\n },\n knrQuery: {\n knr: undefined\n }\n }, Object(defineProperty["a" /* default */])(_ref, "form", {\n leftdetails: [],\n rightdetails: []\n }), Object(defineProperty["a" /* default */])(_ref, "saveform", {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: [// {\n // erpAssemblyCode:undefined,\n // erpAssemblyName:undefined,\n // vehicleModel:undefined,\n // //isCover: true,\n // details: undefined,\n // // {\n // // partCode: undefined,\n // // partNum: 1,\n // // description: undefined,\n // // isKey: false\n // // }\n // },\n ] // #region\n\n /*\r\n \r\n */\n // #endregion\n\n }), Object(defineProperty["a" /* default */])(_ref, "rightAlldetails", []), Object(defineProperty["a" /* default */])(_ref, "page", 1), Object(defineProperty["a" /* default */])(_ref, "showSearch", true), Object(defineProperty["a" /* default */])(_ref, "bomUnit", bomUnit), Object(defineProperty["a" /* default */])(_ref, "multipleSelection", []), Object(defineProperty["a" /* default */])(_ref, "multipLeLeftSelection", []), Object(defineProperty["a" /* default */])(_ref, "drawer", false), Object(defineProperty["a" /* default */])(_ref, "dialogFormVisible", false), Object(defineProperty["a" /* default */])(_ref, "formTitle", ""), Object(defineProperty["a" /* default */])(_ref, "isEdit", false), Object(defineProperty["a" /* default */])(_ref, "formLoading", false), Object(defineProperty["a" /* default */])(_ref, "tableHeight", document.documentElement.clientHeight - 335), Object(defineProperty["a" /* default */])(_ref, "detailTableHeight", 250), Object(defineProperty["a" /* default */])(_ref, "PLList", []), Object(defineProperty["a" /* default */])(_ref, "PLChildList", []), Object(defineProperty["a" /* default */])(_ref, "vehicleModelQuery", {\n dicTypeName: "格拉默车型"\n }), Object(defineProperty["a" /* default */])(_ref, "vehicleModelList", []), Object(defineProperty["a" /* default */])(_ref, "productTypeList", [{\n id: 1,\n name: \'门板\'\n }, {\n id: 2,\n name: \'柱护板\'\n }]), Object(defineProperty["a" /* default */])(_ref, "gettime", ""), Object(defineProperty["a" /* default */])(_ref, "KNRlist", null), _ref;\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.$nextTick(function () {\n var offsetHei = document.documentElement.clientHeight; //console.log(offsetHei);\n\n var boxH = _this2.$refs.box.offsetHeight;\n _this2.tableHeight = offsetHei - boxH - 57 - 79; //57为footer高度,79为页面上部标签高度\n //console.log(this.$refs.box.offsetHeight);\n //console.log(this.tableHeight);\n });\n },\n created: function created() {\n //this.getKNRList();\n this.getProductLine(); //this.getList();\n //console.log(this.userInfo);\n },\n computed: Object(objectSpread2["a" /* default */])({\n getDefaultField: function getDefaultField() {\n var tempsTabs = [];\n tempsTabs.push({\n label: "流水号",\n prop: "serialNum",\n width: 100\n });\n tempsTabs.push({\n label: "大众顺序号",\n prop: "hostSN",\n width: 120\n });\n tempsTabs.push({\n label: "KNR",\n prop: "knr",\n width: 130\n }); // tempsTabs.push({\n // label: "底盘号",\n // prop: "vin",\n // width: 130,\n // });\n\n tempsTabs.push({\n label: "上线时间",\n prop: "onlineTime",\n width: 150\n });\n tempsTabs.push({\n label: "接收时间",\n prop: "receiveTime",\n width: 180\n });\n tempsTabs.push({\n label: "车型代码",\n prop: "vehicleModelCode",\n width: 120\n });\n tempsTabs.push({\n label: "版本",\n prop: "version",\n width: 150\n });\n tempsTabs.push({\n label: "采集点",\n prop: "collectionPoint",\n width: 120\n });\n tempsTabs.push({\n label: "文件名称",\n prop: "fileName",\n width: 120\n });\n tempsTabs.push({\n label: "产线",\n prop: "productLine",\n width: 120\n });\n return tempsTabs;\n }\n }, Object(vuex_esm["b" /* mapGetters */])([\'userInfo\'])),\n methods: {\n //抽屉\n handleDrawerOpen: function handleDrawerOpen(param) {\n this.drawer = true; //console.log(param)\n\n var parentId = param.assemblyID; //主键id\n\n this.customerInfos = [{\n ParentId: parentId\n }];\n },\n handleDrawerClose: function handleDrawerClose(done) {\n done();\n },\n getCurrentTime: function getCurrentTime() {\n //获取当前时间并打印\n var _this = this;\n\n var yy = new Date().getFullYear();\n var month = new Date().getMonth() + 1;\n var mm = month < 10 ? \'0\' + month : month;\n var dd = new Date().getDate() < 10 ? \'0\' + new Date().getDate() : new Date().getDate();\n var hh = new Date().getHours() < 10 ? \'0\' + new Date().getHours() : new Date().getHours();\n var mf = new Date().getMinutes() < 10 ? \'0\' + new Date().getMinutes() : new Date().getMinutes();\n var ss = new Date().getSeconds() < 10 ? \'0\' + new Date().getSeconds() : new Date().getSeconds();\n _this.gettime = yy + \'-\' + mm + \'-\' + dd + \' \' + hh + \':\' + mf + \':\' + ss;\n },\n save: function save() {\n var _this3 = this;\n\n this.$refs.form.validate(function (valid) {\n if (valid) {\n _this3.saveform.m100Bill.hostSN = _this3.form.hostSN;\n _this3.saveform.m100Bill.knr = _this3.form.knr;\n _this3.saveform.m100Bill.vin = _this3.form.vin;\n _this3.saveform.m100Bill.onlineTime = _this3.form.onlineTime;\n _this3.saveform.m100Bill.vehicleModelCode = _this3.form.vehicleModelCode;\n\n _this3.getCurrentTime();\n\n _this3.saveform.m100Bill.description = "无";\n _this3.saveform.m100Bill.receiveTime = _this3.gettime; //判断最后一次右侧数据rightdetails是否在右侧全部数据rightAlldetails中\n\n _this3.form.rightdetails.forEach(function (element) {\n var tlist = _this3.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode && u.partName === element.partName && u.partNum === element.partNum;\n });\n\n if (tlist.length === 0) {\n _this3.rightAlldetails.push(element);\n }\n }); //this.saveform.erpAssemblyList.details = {};\n //console.log("当前左侧数据");\n //console.log(this.form.leftdetails);\n //console.log("当前右侧显示数据");\n //console.log(this.form.rightdetails);\n //console.log("当前右侧全部数据");\n //console.log(this.rightAlldetails);\n\n /**左右关联拼接最终erpAssemblyList格式 */\n\n\n _this3.form.leftdetails.forEach(function (element, i) {\n var templist = _this3.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode;\n });\n\n var obj = {};\n obj.erpAssemblyCode = element.erpAssemblyCode;\n obj.erpAssemblyName = element.erpAssemblyName;\n obj.vehicleModel = element.vehicleModel;\n obj.details = [];\n templist.forEach(function (detail) {\n if (detail.partCode !== "" && detail.partCode !== undefined) {\n obj.details.push(detail);\n }\n });\n\n _this3.saveform.erpAssemblyList.push(obj);\n }); //console.log(this.saveform);\n\n\n console.log("保存参数:" + JSON.stringify(_this3.saveform));\n _this3.formLoading = true;\n\n if (_this3.isEdit) {\n //修改\n _this3.$axios.puts("/api/newjit/new-m100/" + _this3.multipleSelection[0].id, _this3.saveform).then(function (response) {\n console.log(response);\n _this3.formLoading = false;\n\n _this3.$notify({\n title: "成功",\n message: "更新成功",\n type: "success",\n duration: 2000\n });\n\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n }).catch(function () {\n _this3.formLoading = false;\n console.log("error");\n _this3.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n };\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n });\n } else {\n //insert添加\n console.log(JSON.stringify(_this3.saveform));\n\n _this3.$axios.posts("/api/newjit/new-m100", _this3.saveform).then(function (response) {\n _this3.formLoading = false;\n\n _this3.$notify({\n title: "成功",\n message: "新增成功",\n type: "success",\n duration: 2000\n });\n\n _this3.dialogFormVisible = false;\n\n _this3.getList();\n }).catch(function () {\n _this3.formLoading = false;\n _this3.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n };\n });\n }\n }\n });\n },\n\n /** 新增 */\n handleCreate: function handleCreate() {\n var _this4 = this;\n\n this.getKNRList();\n\n if (this.$refs["form"] !== undefined) {\n this.$nextTick(function () {\n _this4.$refs["form"].resetFields();\n });\n }\n\n this.formTitle = "新增";\n this.isEdit = false;\n this.form = {};\n this.rightAlldetails = [];\n this.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n }; //this.details = [];\n\n this.getvehicleModel();\n this.dialogFormVisible = true;\n },\n\n /** 修改 */\n handleUpdate: function handleUpdate(row) {\n this.getKNRList();\n this.formTitle = "修改";\n this.isEdit = true;\n this.rightAlldetails = [];\n this.saveform = {\n m100Bill: {\n knr: undefined,\n vehicleModelCode: undefined,\n vin: undefined,\n hostSN: undefined,\n onlineTime: undefined,\n billStatus: 2,\n billM100Parts: []\n },\n erpAssemblyList: []\n }; //this.details = [];\n\n this.getvehicleModel();\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } else {\n this.fetchData(this.multipleSelection[0].id);\n this.dialogFormVisible = true;\n }\n },\n\n /** 删除 */\n handleDelete: function handleDelete(row) {\n var _this5 = this;\n\n if (this.multipleSelection.length != 1) {\n this.$message({\n message: "编辑必须选择单行",\n type: "warning"\n });\n return;\n } // this.$alert("暂时不支持批量删除", "提示", {\n // confirmButtonText: "确定",\n // callback: (action) => {\n // //\n // },\n // }); \n\n\n this.$confirm("是否删除底盘号" + this.multipleSelection[0].vin + "的数据?", "提示", {\n confirmButtonText: "确定",\n cancelButtonText: "取消",\n type: "warning"\n }).then(function () {\n _this5.$axios.deletes("/api/newjit/new-m100/" + _this5.multipleSelection[0].id).then(function (response) {\n var index = _this5.list.indexOf(_this5.multipleSelection[0]);\n\n _this5.$notify({\n title: "成功",\n message: "删除成功",\n type: "success",\n duration: 2000\n });\n\n _this5.getList();\n });\n }).catch(function () {\n _this5.$message({\n type: "info",\n message: "已取消删除"\n });\n });\n },\n fetchData: function fetchData(id) {\n var _this6 = this;\n\n //循环动态\n this.$axios.gets("/api/newjit/new-m100/" + id).then(function (response) {\n //console.log(response);\n _this6.form = response.item.m100Bill;\n _this6.form.rightdetails = [];\n _this6.form.leftdetails = response.item.erpAssemblyList;\n response.item.erpAssemblyList.forEach(function (element, i) {\n element.details.forEach(function (item) {\n item.erpAssemblyCode = element.erpAssemblyCode;\n\n _this6.rightAlldetails.push(item);\n\n if (i === 0) {\n _this6.form.rightdetails.push(item);\n }\n }); //console.log(this.rightAlldetails);\n //console.log(this.form.rightdetails);\n });\n });\n },\n\n /** 导出功能 */\n handleDownload: function handleDownload() {\n var _this7 = this;\n\n this.listLoading = true;\n this.listExportQuery.erpAssemblyCode = this.listQuery.ErpAssemblyCode;\n this.listExportQuery.erpAssemblyName = this.listQuery.ErpAssemblyName;\n console.log(JSON.stringify(this.listExportQuery));\n this.$axios.posts("/api/newjit/new-m100/export", this.listExportQuery).then(function (res) {\n var filename = res.item;\n\n _this7.$axios.BolbGets("/api/newjit/exclude-part-cfg/download/" + filename).then(function (response) {\n if (filename.indexOf("_") != -1) {\n var downName = filename.slice(0, filename.lastIndexOf("_")) + filename.slice(filename.lastIndexOf("."));\n Object(crmindex["a" /* downloadFile */])(response, downName);\n\n _this7.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n } else {\n Object(crmindex["a" /* downloadFile */])(response, filename);\n\n _this7.$notify({\n title: "成功",\n message: "数据-导出成功!",\n type: "success",\n duration: 2000\n });\n }\n\n _this7.listLoading = false;\n });\n });\n this.listLoading = false;\n },\n\n /** 重置按钮操作 */\n resetQuery: function resetQuery(refName) {\n this.$refs[refName].resetFields();\n this.listQuery.OnlineTimeValue = [];\n this.listQuery.ReceiveTimeValue = [];\n this.handleQuery();\n this.getProductLine();\n },\n\n /** 搜索按钮操作 */\n handleQuery: function handleQuery() {\n this.listQuery.SkipCount = 1; //this.getList();\n },\n selectValue: function selectValue(params) {\n //版本下拉选择\n this.versionValue = params.value;\n this.getList();\n },\n selectOptionsChange: function selectOptionsChange(item) {\n this.getList();\n },\n importExcelData: function importExcelData() {\n //关闭导入窗体时调用\n this.showExcelImport = false; //this.getList();\n },\n\n /** 刷新列表 */\n handleHandle: function handleHandle(data) {\n if (data.type !== "edit") {\n this.getList();\n }\n },\n\n /**左增加 */\n handleAddLeftDetails: function handleAddLeftDetails() {\n this.$forceUpdate();\n\n if (this.form.leftdetails === undefined) {\n this.form.leftdetails = []; //console.log(679);\n }\n\n var obj = {};\n obj.erpAssemblyCode = "";\n obj.erpAssemblyName = "";\n obj.vehicleModel = this.form.vehicleModelCode; //console.log(this.form.leftdetails);\n\n this.form.leftdetails.push(obj); //console.log(688);\n },\n\n /**右增加 */\n handleAddRightDetails: function handleAddRightDetails() {\n this.$forceUpdate();\n var obj = {}; //判断是否选择了左侧的数据\n //console.log(this.multipLeLeftSelection);\n\n if (this.multipLeLeftSelection.length !== 1) {\n this.$message({\n message: "必须选择单行总成",\n type: "warning"\n });\n return;\n } else {// if (this.form.rightdetails === undefined) {\n // this.form.rightdetails = [];\n // this.form.rightdetails.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;\n // //console.log(679);\n // }\n }\n\n obj.erpAssemblyCode = this.multipLeLeftSelection[0].erpAssemblyCode;\n obj.partCode = "";\n obj.description = "";\n obj.partNum = 1; //console.log(this.form.rightdetails);\n\n this.form.rightdetails.push(obj); //console.log(688);\n },\n\n /**左侧删除 */\n handleLeftDeleteDetails: function handleLeftDeleteDetails(index, row) {\n this.form.leftdetails.splice(index, 1);\n this.rightAlldetails = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode !== row.erpAssemblyCode;\n }); //console.log(693);\n },\n\n /**右侧删除 */\n handleRightDeleteDetails: function handleRightDeleteDetails(index, row) {\n var _this8 = this;\n\n this.form.rightdetails.splice(index, 1);\n this.rightAlldetails.forEach(function (element, i) {\n if (element === row) {\n //console.log("右侧删除");\n _this8.rightAlldetails.splice(i, 1); //console.log(this.rightAlldetails);\n\n\n return;\n }\n }); // .filter(u => u.erpAssemblyCode !== row.erpAssemblyCode && u.partCode !== row.partCode \n // && u.partName !== row.partName && u.partNum !== row.partNum);\n //console.log(693);\n },\n\n /** 格式化字段 */\n fieldFormatter: function fieldFormatter(row, column) {\n if (column.property === "billStatus") {\n return {\n 0: "未生效",\n 2: "已生效",\n 3: "已发布"\n }[row[column.property]];\n }\n\n if (column.property == "onlineTime" || column.property == "receiveTime") {\n var date = row[column.property];\n\n if (date == undefined) {\n return "";\n }\n\n return moment_default()(date).format("YYYY-MM-DD HH:mm:ss");\n }\n\n return row[column.property] || "--";\n },\n roleFilter: function roleFilter(type) {\n return projectTypeKeyValue[type];\n },\n getList: function getList(data) {\n var _this9 = this;\n\n this.listLoading = true;\n\n if (data != undefined) {\n this.listQuery.SkipCount = (this.page - 1) * data.limit;\n } else {\n this.listQuery.SkipCount = (this.page - 1) * 15;\n }\n\n if (this.listQuery.OnlineTimeValue !== undefined) {\n this.listQuery.OnlineTimeBegin = this.listQuery.OnlineTimeValue[0];\n this.listQuery.OnlineTimeEnd = this.listQuery.OnlineTimeValue[1];\n }\n\n if (this.listQuery.ReceiveTimeValue !== undefined) {\n this.listQuery.ReceiveTimeBegin = this.listQuery.ReceiveTimeValue[0];\n this.listQuery.ReceiveTimeEnd = this.listQuery.ReceiveTimeValue[1];\n }\n\n this.$axios.gets("/api/newjit/new-m100/list", this.listQuery).then(function (response) {\n _this9.list = response.items;\n _this9.totalCount = response.totalCount;\n setTimeout(function () {\n //大数据量加载时\n _this9.listLoading = false;\n }, 500);\n }).catch(function () {\n _this9.listLoading = false;\n });\n },\n getKNRList: function getKNRList() {\n var _this10 = this;\n\n var lq = {};\n var tlist = [];\n this.$axios.gets("/api/newjit/bill-r100/list", lq).then(function (response) {\n _this10.KNRlist = response.items;\n console.log("获取R100的KNR信息");\n console.log(_this10.KNRlist);\n }).catch(function () {\n console.log("error");\n });\n },\n getVModel: function getVModel() {\n var _this11 = this;\n\n this.form.vehicleModelCode = this.KNRlist.filter(function (u) {\n return u.knr === _this11.form.knr;\n })[0].vehicleModelCode;\n this.knrQuery.knr = this.form.knr;\n this.form.rightdetails = [];\n this.$axios.gets("/api/newjit/new-m100/get-erp-assembly-list", this.knrQuery).then(function (response) {\n if (response.status === true) {\n _this11.KNREClist = response.item; //console.log("获取KNR的总成信息");\n //console.log(this.KNREClist);\n\n _this11.form.leftdetails = response.item;\n\n _this11.$forceUpdate();\n\n response.item.forEach(function (element, i) {\n element.details.forEach(function (detail) {\n detail.erpAssemblyCode = element.erpAssemblyCode;\n\n _this11.rightAlldetails.push(detail);\n\n if (i === 0) {\n _this11.form.rightdetails.push(detail);\n }\n });\n });\n } else {\n console.log("接口返回结果为错误");\n }\n }).catch(function () {\n console.log("error");\n });\n },\n vMchange: function vMchange() {\n this.$forceUpdate();\n },\n valueselectChange: function valueselectChange() {\n this.$forceUpdate();\n },\n handleImportSAP: function handleImportSAP() {},\n handleFilter: function handleFilter() {\n this.page = 1;\n this.getList();\n },\n sortChange: function sortChange(data) {\n var prop = data.prop,\n order = data.order;\n\n if (!prop || !order) {\n this.handleFilter();\n return;\n }\n\n this.listQuery.Sorting = prop + " " + order;\n this.handleFilter();\n },\n handleSelectionChange: function handleSelectionChange(val) {\n this.multipleSelection = val; //console.log(this.multipleSelection);\n },\n handleLeftSelectionChange: function handleLeftSelectionChange(val) {// console.log("左改变");\n // console.log(val);\n // this.multipLeLeftSelection = [];\n // this.multipLeLeftSelection.push(val);\n // console.log(this.multipLeLeftSelection);\n },\n\n /** 通过回调控制style */\n cellStyle: function cellStyle(_ref2) {\n var row = _ref2.row,\n column = _ref2.column,\n rowIndex = _ref2.rowIndex,\n columnIndex = _ref2.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right"\n };\n } else {\n return {\n textAlign: "left"\n };\n }\n },\n\n /** 通过回调控制表头style */\n headerRowStyle: function headerRowStyle(_ref3) {\n var row = _ref3.row,\n column = _ref3.column,\n rowIndex = _ref3.rowIndex,\n columnIndex = _ref3.columnIndex;\n\n if (column.property === "qty") {\n return {\n textAlign: "right",\n background: "#FAFAFA"\n };\n } else {\n return {\n textAlign: "left",\n background: "#FAFAFA"\n };\n }\n },\n\n /**主表点击*/\n handleRowClick: function handleRowClick(row, column, event) {\n this.$refs.multipleTable.clearSelection();\n this.$refs.multipleTable.toggleRowSelection(row);\n },\n\n /**左点击*/\n handleLeftRowClick: function handleLeftRowClick(row, column, event) {\n var _this12 = this;\n\n this.$forceUpdate(); //console.log("左点击");\n\n this.$refs.LeftDetialTable.clearSelection();\n this.$refs.LeftDetialTable.toggleRowSelection(row);\n this.multipLeLeftSelection = [];\n this.multipLeLeftSelection.push(row);\n\n if (this.form.rightdetails === undefined) {\n this.form.rightdetails = [];\n }\n\n if (this.form.rightdetails.length > 0) {\n var templist = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === _this12.form.rightdetails[0].erpAssemblyCode;\n });\n this.form.rightdetails.forEach(function (element) {\n var temp = templist.filter(function (u) {\n return u.erpAssemblyCode === element.erpAssemblyCode && u.partCode === element.partCode && u.partName === element.partName && u.partNum === element.partNum;\n });\n\n if (temp.length >= 1) {//console.log("判定包含");\n //console.log(templist);\n //console.log(element);\n } else {\n //console.log("判定不包含");\n //console.log(element);\n _this12.rightAlldetails.push(element);\n }\n });\n } else {\n var templist = [];\n } //.log("右侧全数据");\n //console.log(this.rightAlldetails);\n\n\n this.form.rightdetails = this.rightAlldetails.filter(function (u) {\n return u.erpAssemblyCode === _this12.multipLeLeftSelection[0].erpAssemblyCode;\n }); //console.log("右侧数据");\n //console.log(this.form.rightdetails);\n },\n //获取所有产线\n getProductLine: function getProductLine() {\n var _this13 = this;\n\n this.listPLQuery.UserId = this.userInfo.userId;\n this.$axios.gets("/api/newjit/product-line/list", this.listPLQuery).then(function (response) {\n //console.log(response);\n _this13.PLList = response.item;\n _this13.PLChildList = _this13.PLList.filter(function (u) {\n return u.productType === parseInt(_this13.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n });\n _this13.listQuery.productLine = _this13.PLChildList[0].productLineCode;\n\n _this13.getList(); //console.log(this.PLList);\n\n }).catch(function () {});\n },\n //产线类型变更\n ptypeselectChange: function ptypeselectChange() {\n var _this14 = this;\n\n this.$forceUpdate();\n this.listQuery.productLine = ""; //console.log(this.listQuery.productType);\n //console.log(this.PLChildList)\n\n this.PLChildList = this.PLList.filter(function (u) {\n return u.productType === parseInt(_this14.listQuery.productType);\n }).sort(function (a, b) {\n return a.productLineCode - b.productLineCode;\n }); //console.log(this.PLList)\n //console.log(this.listQuery.productType)\n //console.log(this.PLChildList)\n },\n //获取车型\n getvehicleModel: function getvehicleModel() {\n var _this15 = this;\n\n this.$axios.gets("/api/newjit/dic/list", this.vehicleModelQuery).then(function (response) {\n //console.log(response);\n _this15.vehicleModelList = response.item; //console.log()\n }).catch(function () {});\n },\n leftclick: function leftclick() {\n this.$forceUpdate();\n var obj = {};\n obj.erpAssemblyCode = this.form.erpAssemblyCode;\n obj.erpAssemblyName = this.form.erpAssemblyName;\n obj.vehicleModel = this.form.vehicleModelCode;\n\n if (this.form.leftdetails === undefined) {\n this.form.leftdetails = [];\n }\n\n this.form.leftdetails.push(obj);\n },\n rightclick: function rightclick() {}\n }\n});\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=script&lang=js&\n /* harmony default export */ var basedate_m100BIllvue_type_script_lang_js_ = (m100BIllvue_type_script_lang_js_); \n// EXTERNAL MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue?vue&type=style&index=0&id=e45a1592&lang=scss&scoped=true&\nvar m100BIllvue_type_style_index_0_id_e45a1592_lang_scss_scoped_true_ = __webpack_require__("01d5");\n\n// CONCATENATED MODULE: ./src/views/pg-fis/basedate/m100BIll/index.vue\n\n\n\n\n\n\n/* normalize component */\n\nvar m100BIll_component = Object(componentNormalizer["a" /* default */])(\n basedate_m100BIllvue_type_script_lang_js_,\n render,\n staticRenderFns,\n false,\n null,\n "e45a1592",\n null\n \n)\n\n/* harmony default export */ var m100BIll = __webpack_exports__["default"] = (m100BIll_component.exports);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9kOTYzIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvbTEwMEJJbGwvZGV0YWlsLnZ1ZT80NmUyIiwid2VicGFjazovLy9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/ZDgxZSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/YWY5MiIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/MGNhMyIsIndlYnBhY2s6Ly8vc3JjL3ZpZXdzL3BnLWZpcy9iYXNlZGF0ZS9tMTAwQklsbC9pbmRleC52dWU/ZTg0YSIsIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2luZGV4LnZ1ZT9mNDZlIiwid2VicGFjazovLy8uL3NyYy92aWV3cy9wZy1maXMvYmFzZWRhdGUvbTEwMEJJbGwvaW5kZXgudnVlPzA4MmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDBCQUEwQixhQUFhLDBCQUEwQix3QkFBd0IsaUJBQWlCLDhCQUE4QixZQUFZLFVBQVUsZ0JBQWdCLDZCQUE2QixnQkFBZ0IsYUFBYSw0RUFBNEUseUJBQXlCLHFDQUFxQyxxQkFBcUIsT0FBTyxxQ0FBcUMsa0JBQWtCLGFBQWEsc0JBQXNCLFFBQVEsbURBQW1ELEtBQUssK0JBQStCLFFBQVEsMkRBQTJELDRDQUE0QyxxQ0FBcUMsNkNBQTZDLHVCQUF1QixtQkFBbUIsbUNBQW1DLEVBQUUsNEJBQTRCLE9BQU8saUNBQWlDLGtCQUFrQixhQUFhLHNCQUFzQixRQUFRLG1EQUFtRCxLQUFLLCtCQUErQixRQUFRLDJEQUEyRCw0Q0FBNEMscUNBQXFDLHlDQUF5Qyx1QkFBdUIsbUJB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RyxnQkFBZ0IsOENBQVU7QUFDMUIsRUFBRSx1Q0FBTTtBQUNSLEVBQUUsc0RBQU07QUFDUixFQUFFLCtEQUFlO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVlLDREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2lpQmY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtDQUdBOztBQUNBLGVBQ0E7QUFBQTtBQUFBO0FBQUEsQ0FEQSxFQUVBO0FBQUE7QUFBQTtBQUFBLENBRkEsRUFHQTtBQUFBO0FBQUE7QUFBQSxDQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0EsQ0FIQSxFQUdBLEVBSEE7QUFLQTtBQUNBLGtCQURBO0FBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEdBRkE7QUFHQTtBQUFBO0FBQUEsR0FI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eUNBQU07QUFDUixFQUFFLE1BQU07QUFDUixFQUFFLGVBQWU7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRWUsZ0dBQVMsUSIsImZpbGUiOiJjZWFlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHt2YXIgX3ZtPXRoaXM7dmFyIF9oPV92bS4kY3JlYXRlRWxlbWVudDt2YXIgX2M9X3ZtLl9zZWxmLl9jfHxfaDtyZXR1cm4gX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY3ItYm9keS1jb250ZW50XCJ9LFtfYygnZGl2Jyx7cmVmOlwiYm94XCJ9LFtfYygnZmxleGJveCcse3N0YXRpY0NsYXNzOlwiY29udGVudC1oZWFkZXJcIn0sW19jKCdlbC1mb3JtJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIscmF3TmFtZTpcInYtc2hvd1wiLHZhbHVlOihfdm0uc2hvd1NlYXJjaCksZXhwcmVzc2lvbjpcInNob3dTZWFyY2hcIn1dLHJlZjpcInF1ZXJ5Rm9ybVwiLGF0dHJzOntcIm1vZGVsXCI6X3ZtLmxpc3RRdWVyeSxcImlubGluZVwiOnRydWV9fSxbX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLnlJ/kuqfnur86XCIsXCJwcm9wXCI6XCJwcm9kdWN0VHlwZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0ucHR5cGVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwicHJvZHVjdFR5cGVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5wcm9kdWN0VHlwZVwifX0sX3ZtLl9sKChfdm0ucHJvZHVjdFR5cGVMaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmlkLGF0dHJzOntcImxhYmVsXCI6aXRlbS5uYW1lLFwidmFsdWVcIjppdGVtLmlkfX0pfSksMSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiXCIsXCJwcm9wXCI6XCJwcm9kdWN0TGluZVwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJtYXJnaW4tcmlnaHRcIjpcIjE1cHhcIn0sYXR0cnM6e1wiY2xlYXJhYmxlXCI6XCJcIixcInBsYWNlaG9sZGVyXCI6XCLor7fpgInmi6lcIixcInNpemVcIjpcIm1lZGl1bVwifSxvbjp7XCJjaGFuZ2VcIjpfdm0udmFsdWVzZWxlY3RDaGFuZ2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5wcm9kdWN0TGluZSksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwicHJvZHVjdExpbmVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5wcm9kdWN0TGluZVwifX0sX3ZtLl9sKChfdm0uUExDaGlsZExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLnByb2R1Y3RMaW5lTmFtZSxcInZhbHVlXCI6aXRlbS5wcm9kdWN0TGluZUNvZGV9fSl9KSwxKV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLniYjmnKw6XCIsXCJwcm9wXCI6XCJWZXJzaW9uXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZlcnNpb24pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIlZlcnNpb25cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5WZXJzaW9uXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3OlwiLFwicHJvcFwiOlwiSG9zdFNOQmVnaW5cIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNOQmVnaW4pLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIkhvc3RTTkJlZ2luXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCItXCIsXCJwcm9wXCI6XCJIb3N0U05FbmRcIn19LFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMjQwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIlwiLFwiY2xlYXJhYmxlXCI6XCJcIixcInNpemVcIjpcInNtYWxsXCJ9LG5hdGl2ZU9uOntcImtleXVwXCI6ZnVuY3Rpb24oJGV2ZW50KXtpZighJGV2ZW50LnR5cGUuaW5kZXhPZigna2V5JykmJl92bS5faygkZXZlbnQua2V5Q29kZSxcImVudGVyXCIsMTMsJGV2ZW50LmtleSxcIkVudGVyXCIpKXsgcmV0dXJuIG51bGw7IH1yZXR1cm4gX3ZtLmhhbmRsZVF1ZXJ5KCRldmVudCl9fSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuSG9zdFNORW5kKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJIb3N0U05FbmRcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5Ib3N0U05FbmRcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCJLTlI6XCIsXCJwcm9wXCI6XCJLTlJCZWdpblwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5LTlJCZWdpbiksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiS05SQmVnaW5cIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5LTlJCZWdpblwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIi1cIixcInByb3BcIjpcIktOUkVuZFwifX0sW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIyNDBweFwifSxhdHRyczp7XCJwbGFjZWhvbGRlclwiOlwiXCIsXCJjbGVhcmFibGVcIjpcIlwiLFwic2l6ZVwiOlwic21hbGxcIn0sbmF0aXZlT246e1wia2V5dXBcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmX3ZtLl9rKCRldmVudC5rZXlDb2RlLFwiZW50ZXJcIiwxMywkZXZlbnQua2V5LFwiRW50ZXJcIikpeyByZXR1cm4gbnVsbDsgfXJldHVybiBfdm0uaGFuZGxlUXVlcnkoJGV2ZW50KX19LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5LTlJFbmQpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0ubGlzdFF1ZXJ5LCBcIktOUkVuZFwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LktOUkVuZFwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuW6leebmOWPtzpcIixcInByb3BcIjpcIlZJTkJlZ2luXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZJTkJlZ2luKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJWSU5CZWdpblwiLCAkJHYpfSxleHByZXNzaW9uOlwibGlzdFF1ZXJ5LlZJTkJlZ2luXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwiLVwiLFwicHJvcFwiOlwiVklORW5kXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjI0MHB4XCJ9LGF0dHJzOntcInBsYWNlaG9sZGVyXCI6XCJcIixcImNsZWFyYWJsZVwiOlwiXCIsXCJzaXplXCI6XCJzbWFsbFwifSxuYXRpdmVPbjp7XCJrZXl1cFwiOmZ1bmN0aW9uKCRldmVudCl7aWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiZfdm0uX2soJGV2ZW50LmtleUNvZGUsXCJlbnRlclwiLDEzLCRldmVudC5rZXksXCJFbnRlclwiKSl7IHJldHVybiBudWxsOyB9cmV0dXJuIF92bS5oYW5kbGVRdWVyeSgkZXZlbnQpfX0sbW9kZWw6e3ZhbHVlOihfdm0ubGlzdFF1ZXJ5LlZJTkVuZCksY2FsbGJhY2s6ZnVuY3Rpb24gKCQkdikge192bS4kc2V0KF92bS5saXN0UXVlcnksIFwiVklORW5kXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuVklORW5kXCJ9fSldLDEpLF9jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5LiK57q/5pel5pyfXCJ9fSxbX2MoJ2VsLWRhdGUtcGlja2VyJyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM4MHB4XCJ9LGF0dHJzOntcInNpemVcIjpcInNtYWxsXCIsXCJ2YWx1ZS1mb3JtYXRcIjpcInl5eXktTU0tZGQgSEg6bW06c3NcIixcInR5cGVcIjpcImRhdGV0aW1lcmFuZ2VcIixcImRlZmF1bHQtdGltZVwiOlsnMDA6MDA6MDAnLCcyMzo1OTo1OSddLFwicmFuZ2Utc2VwYXJhdG9yXCI6XCItXCIsXCJzdGFydC1wbGFjZWhvbGRlclwiOlwi5byA5aeL5pel5pyfXCIsXCJlbmQtcGxhY2Vob2xkZXJcIjpcIue7k+adn+aXpeacn1wifSxtb2RlbDp7dmFsdWU6KF92bS5saXN0UXVlcnkuT25saW5lVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJPbmxpbmVUaW1lVmFsdWVcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImxpc3RRdWVyeS5PbmxpbmVUaW1lVmFsdWVcIn19KV0sMSksX2MoJ2VsLWZvcm0taXRlbScse2F0dHJzOntcImxhYmVsXCI6XCLmjqXmlLbml6XmnJ9cIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzgwcHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwic21hbGxcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwidHlwZVwiOlwiZGF0ZXRpbWVyYW5nZVwiLFwiZGVmYXVsdC10aW1lXCI6WycwMDowMDowMCcsJzIzOjU5OjU5J10sXCJyYW5nZS1zZXBhcmF0b3JcIjpcIi1cIixcInN0YXJ0LXBsYWNlaG9sZGVyXCI6XCLlvIDlp4vml6XmnJ9cIixcImVuZC1wbGFjZWhvbGRlclwiOlwi57uT5p2f5pel5pyfXCJ9LG1vZGVsOnt2YWx1ZTooX3ZtLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJSZWNlaXZlVGltZVZhbHVlXCIsICQkdil9LGV4cHJlc3Npb246XCJsaXN0UXVlcnkuUmVjZWl2ZVRpbWVWYWx1ZVwifX0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tc2VhcmNoXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6X3ZtLmhhbmRsZUZpbHRlcn19LFtfdm0uX3YoXCLmkJzntKJcIildKSxfYygnZWwtYnV0dG9uJyx7YXR0cnM6e1wiaWNvblwiOlwiZWwtaWNvbi1yZWZyZXNoXCIsXCJzaXplXCI6XCJtaW5pXCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLnJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpfX19LFtfdm0uX3YoXCLph43nva5cIildKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn0sYXR0cnM6e1widHlwZVwiOlwid2FybmluZ1wiLFwicGxhaW5cIjpcIlwiLFwiaWNvblwiOlwiZWwtaWNvbi1kb3dubG9hZFwiLFwic2l6ZVwiOlwibWluaVwifSxvbjp7XCJjbGlja1wiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS5oYW5kbGVEb3dubG9hZCgpfX19LFtfdm0uX3YoXCLlr7zlh7ooRXhjZWwpIFwiKV0pXSwxKSxfYygnZWwtZm9ybS1pdGVtJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWJvdHRvbVwiOlwiMHB4XCIsXCJtYXJnaW4tdG9wXCI6XCItMXB4XCJ9fSxbX2MoJ2VsLWJ1dHRvbicse3N0YXRpY0NsYXNzOlwiZmlsdGVyLWl0ZW1cIixhdHRyczp7XCJzaXplXCI6XCJtaW5pXCIsXCJ0eXBlXCI6XCJwcmltYXJ5XCIsXCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQ3JlYXRlfX0sW192bS5fdihcIuaWsOWiniBcIildKSxfYygnZWwtYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJmaWx0ZXItaXRlbVwiLGF0dHJzOntcInNpemVcIjpcIm1pbmlcIixcInR5cGVcIjpcInByaW1hcnlcIixcImljb25cIjpcImVsLWljb24tZWRpdFwifSxvbjp7XCJjbGlja1wiOl92bS5oYW5kbGVVcGRhdGV9fSxbX3ZtLl92KFwi5L+u5pS5IFwiKV0pLF9jKCdlbC1idXR0b24nLHtzdGF0aWNDbGFzczpcImZpbHRlci1pdGVtXCIsYXR0cnM6e1wic2l6ZVwiOlwibWluaVwiLFwidHlwZVwiOlwicHJpbWFyeVwiLFwiaWNvblwiOlwiZWwtaWNvbi1kZWxldGVcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlRGVsZXRlfX0sW192bS5fdihcIuWIoOmZpCBcIildKV0sMSldLDEpXSwxKV0sMSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibC10YWJsZVwiLHN0YXRpY1N0eWxlOntcIm1hcmdpbi10b3BcIjpcIi05cHhcIn19LFtfYygnZWwtdGFibGUnLHtkaXJlY3RpdmVzOlt7bmFtZTpcImxvYWRpbmdcIixyYXdOYW1lOlwidi1sb2FkaW5nXCIsdmFsdWU6KF92bS5saXN0TG9hZGluZyksZXhwcmVzc2lvbjpcImxpc3RMb2FkaW5nXCJ9XSxyZWY6XCJtdWx0aXBsZVRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDAlXCJ9LGF0dHJzOntcImVsZW1lbnQtbG9hZGluZy10ZXh0XCI6XCLmi7zlkb3liqDovb3kuK0uLi5cIixcImVsZW1lbnQtbG9hZGluZy1zcGlubmVyXCI6XCJlbC1pY29uLWxvYWRpbmdcIixcImRhdGFcIjpfdm0ubGlzdCxcImhlaWdodFwiOl92bS50YWJsZUhlaWdodCxcImNlbGwtc3R5bGVcIjpfdm0uY2VsbFN0eWxlLFwiaGVhZGVyLWNlbGwtc3R5bGVcIjpfdm0uaGVhZGVyUm93U3R5bGUsXCJzaXplXCI6XCJzbWFsbFwiLFwic3RyaXBlXCI6XCJcIixcImJvcmRlclwiOlwiXCIsXCJoaWdobGlnaHQtY3VycmVudC1yb3dcIjpcIlwifSxvbjp7XCJzb3J0LWNoYW5nZVwiOl92bS5zb3J0Q2hhbmdlLFwic2VsZWN0aW9uLWNoYW5nZVwiOl92bS5oYW5kbGVTZWxlY3Rpb25DaGFuZ2UsXCJyb3ctY2xpY2tcIjpfdm0uaGFuZGxlUm93Q2xpY2t9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcImxhYmVsXCI6XCLlupXnm5jlj7dcIixcInByb3BcIjpcInZpbiBcIixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcImFsaWduXCI6XCJjZW50ZXJcIixcIndpZHRoXCI6XCIxODBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImxpbmstdHlwZVwiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KX19fSxbX3ZtLl92KF92bS5fcyhzY29wZS5yb3cudmluKSldKV19fV0pfSksX3ZtLl9sKChfdm0uZ2V0RGVmYXVsdEZpZWxkKSxmdW5jdGlvbihpdGVtLGluZGV4KXtyZXR1cm4gX2MoJ2VsLXRhYmxlLWNvbHVtbicse2tleTppbmRleCxhdHRyczp7XCJwcm9wXCI6aXRlbS5wcm9wLFwibGFiZWxcIjppdGVtLmxhYmVsLFwibWluLXdpZHRoXCI6aXRlbS53aWR0aCxcImZvcm1hdHRlclwiOl92bS5maWVsZEZvcm1hdHRlcixcInNvcnRhYmxlXCI6XCJjdXN0b21cIixcInNob3ctb3ZlcmZsb3ctdG9vbHRpcFwiOlwiXCIsXCJndXR0ZXJcIjowfSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJoZWFkZXJcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfdm0uX3YoXCIgXCIrX3ZtLl9zKHNjb3BlLmNvbHVtbi5sYWJlbCkrXCIgXCIpXX19XSxudWxsLHRydWUpfSl9KV0sMiksX2MoJ2VsLWRpYWxvZycse2F0dHJzOntcInZpc2libGVcIjpfdm0uZGlhbG9nRm9ybVZpc2libGUsXCJjbG9zZS1vbi1jbGljay1tb2RhbFwiOmZhbHNlLFwidGl0bGVcIjpfdm0uZm9ybVRpdGxlLFwid2lkdGhcIjpcIjEwMDBweFwifSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRpYWxvZ0Zvcm1WaXNpYmxlPSRldmVudH19fSxbX2MoJ2VsLWZvcm0nLHtyZWY6XCJmb3JtXCIsYXR0cnM6e1wiaW5saW5lXCI6dHJ1ZSxcIm1vZGVsXCI6X3ZtLmZvcm0sXCJydWxlc1wiOl92bS5ydWxlcyxcInNpemVcIjpcInNtYWxsXCIsXCJsYWJlbC13aWR0aFwiOlwiMTIwcHhcIn19LFtfYygnZWwtcm93JyxbX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxMn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIktOUjpcIixcInByb3BcIjpcImtuclwiLFwicmVxdWlyZWRcIjpcIlwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1wicGxhY2Vob2xkZXJcIjpcIuivt+mAieaLqea3u+WKoE0xMDDkv6Hmga/lr7nlupTnmoRLTlLlj7dcIixcImZpbHRlcmFibGVcIjpcIlwiLFwiZGlzYWJsZWRcIjpmYWxzZX0sb246e1wiY2hhbmdlXCI6X3ZtLmdldFZNb2RlbH0sbW9kZWw6e3ZhbHVlOihfdm0uZm9ybS5rbnIpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0uZm9ybSwgXCJrbnJcIiwgJCR2KX0sZXhwcmVzc2lvbjpcImZvcm0ua25yXCJ9fSxfdm0uX2woKF92bS5LTlJsaXN0KSxmdW5jdGlvbihpdGVtKXtyZXR1cm4gX2MoJ2VsLW9wdGlvbicse2tleTppdGVtLmtucixhdHRyczp7XCJsYWJlbFwiOml0ZW0ua25yLFwidmFsdWVcIjppdGVtLmtucn19KX0pLDEpXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi6L2m5Z6LOlwiLFwicHJvcFwiOlwidmVoaWNsZU1vZGVsQ29kZVwiLFwicmVxdWlyZWRcIjpcIlwifX0sW19jKCdlbC1zZWxlY3QnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1wiZGlzYWJsZWRcIjpmYWxzZX0sb246e1wiY2hhbmdlXCI6X3ZtLnZNY2hhbmdlfSxtb2RlbDp7dmFsdWU6KF92bS5mb3JtLnZlaGljbGVNb2RlbENvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChfdm0uZm9ybSwgXCJ2ZWhpY2xlTW9kZWxDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZlaGljbGVNb2RlbENvZGVcIn19LF92bS5fbCgoX3ZtLnZlaGljbGVNb2RlbExpc3QpLGZ1bmN0aW9uKGl0ZW0pe3JldHVybiBfYygnZWwtb3B0aW9uJyx7a2V5Oml0ZW0uaWQsYXR0cnM6e1wibGFiZWxcIjppdGVtLmRpY0l0ZW1OYW1lLFwidmFsdWVcIjppdGVtLmRpY0l0ZW1Db2RlfX0pfSksMSldLDEpXSwxKSxfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5bqV55uY5Y+3OlwiLFwicHJvcFwiOlwidmluXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM1MHB4XCJ9LGF0dHJzOntcImRpc2FibGVkXCI6ZmFsc2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0udmluKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwidmluXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLnZpblwifX0pXSwxKV0sMSldLDEpLF9jKCdlbC1yb3cnLFtfYygnZWwtY29sJyx7YXR0cnM6e1wic3BhblwiOjEyfX0sW19jKCdlbC1mb3JtLWl0ZW0nLHthdHRyczp7XCJsYWJlbFwiOlwi5aSn5LyX6aG65bqP5Y+3OlwiLFwicHJvcFwiOlwiaG9zdFNOXCIsXCJyZXF1aXJlZFwiOlwiXCJ9fSxbX2MoJ2VsLWlucHV0Jyx7c3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjM1MHB4XCJ9LGF0dHJzOntcImRpc2FibGVkXCI6ZmFsc2V9LG1vZGVsOnt2YWx1ZTooX3ZtLmZvcm0uaG9zdFNOKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwiaG9zdFNOXCIsICQkdil9LGV4cHJlc3Npb246XCJmb3JtLmhvc3RTTlwifX0pXSwxKV0sMSksX2MoJ2VsLWNvbCcse2F0dHJzOntcInNwYW5cIjoxMn19LFtfYygnZWwtZm9ybS1pdGVtJyx7YXR0cnM6e1wibGFiZWxcIjpcIuS4iue6v+aXpeacnzpcIixcInByb3BcIjpcIm9ubGluZVRpbWVcIixcInJlcXVpcmVkXCI6XCJcIn19LFtfYygnZWwtZGF0ZS1waWNrZXInLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMzUwcHhcIn0sYXR0cnM6e1widHlwZVwiOlwiZGF0ZXRpbWVcIixcInZhbHVlLWZvcm1hdFwiOlwieXl5eS1NTS1kZCBISDptbTpzc1wiLFwicGxhY2Vob2xkZXJcIjpcIumAieaLqeaXtumXtFwiLFwiZGlzYWJsZWRcIjpmYWxzZX0sbW9kZWw6e3ZhbHVlOihfdm0uZm9ybS5vbmxpbmVUaW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoX3ZtLmZvcm0sIFwib25saW5lVGltZVwiLCAkJHYpfSxleHByZXNzaW9uOlwiZm9ybS5vbmxpbmVUaW1lXCJ9fSldLDEpXSwxKV0sMSksX2MoJ2VsLXJvdycsW19jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MTJ9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4IHNvbGlkICNFNEU0RTRcIixcIndpZHRoXCI6XCI5NCVcIn19LFtfYygnZWwtcm93JyxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJhY2tncm91bmRcIjpcIiNGMUYxRjFcIixcIndpZHRoXCI6XCIxMDAlXCIsXCJoZWlnaHRcIjpcIjMwcHhcIixcImxpbmUtaGVpZ2h0XCI6XCIzMXB4XCJ9fSxbX2MoJ2xhYmVsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn19LFtfdm0uX3YoXCJFUlDmgLvmiJBcIildKV0pXSksX2MoJ2VsLXJvdycsW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIkxlZnREZXRpYWxUYWJsZVwiLHN0YXRpY0NsYXNzOlwiY3ItdGFibGVcIixzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiOTUlXCIsXCJtYXJnaW5cIjpcIjEwcHhcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5mb3JtLmxlZnRkZXRhaWxzLFwiaGVpZ2h0XCI6X3ZtLmRldGFpbFRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9LG9uOntcInJvdy1jbGlja1wiOl92bS5oYW5kbGVMZWZ0Um93Q2xpY2ssXCJzZWxlY3Rpb24tY2hhbmdlXCI6X3ZtLmhhbmRsZUxlZnRTZWxlY3Rpb25DaGFuZ2V9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImVycEFzc2VtYmx5Q29kZVwiLFwibGFiZWxcIjpcIkVSUOaAu+aIkOe8luWPt1wiLFwid2lkdGhcIjpcIjE1MHB4XCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHtzdGF0aWNTdHlsZTp7XCJ3aWR0aFwiOlwiMTM1cHhcIn0sYXR0cnM6e1wic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5lcnBBc3NlbWJseUNvZGUpLGNhbGxiYWNrOmZ1bmN0aW9uICgkJHYpIHtfdm0uJHNldChzY29wZS5yb3csIFwiZXJwQXNzZW1ibHlDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cuZXJwQXNzZW1ibHlDb2RlXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseU5hbWVcIixcImxhYmVsXCI6XCJFUlDmgLvmiJDlkI3np7BcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dCcse2F0dHJzOntcInNpemVcIjpcIm1pbmlcIn0sbW9kZWw6e3ZhbHVlOihzY29wZS5yb3cuZXJwQXNzZW1ibHlOYW1lKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcImVycEFzc2VtYmx5TmFtZVwiLCAkJHYpfSxleHByZXNzaW9uOlwic2NvcGUucm93LmVycEFzc2VtYmx5TmFtZVwifX0pXX19XSl9KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wid2lkdGhcIjpcIjM1cHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLW1pbnVzXCIsXCJ0eXBlXCI6XCJ0ZXh0XCJ9LG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLmhhbmRsZUxlZnREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KX19fSldfX1dKX0sW19jKCd0ZW1wbGF0ZScse3Nsb3Q6XCJoZWFkZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkTGVmdERldGFpbHN9fSldLDEpXSwyKV0sMSldLDEpXSwxKV0pLF9jKCdlbC1jb2wnLHthdHRyczp7XCJzcGFuXCI6MTJ9fSxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJvcmRlclwiOlwiMXB4IHNvbGlkICNFNEU0RTRcIixcIndpZHRoXCI6XCI5NCVcIn19LFtfYygnZWwtcm93JyxbX2MoJ2Rpdicse3N0YXRpY1N0eWxlOntcImJhY2tncm91bmRcIjpcIiNGMUYxRjFcIixcIndpZHRoXCI6XCIxMDAlXCIsXCJoZWlnaHRcIjpcIjMwcHhcIixcImxpbmUtaGVpZ2h0XCI6XCIzMXB4XCJ9fSxbX2MoJ2xhYmVsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLWxlZnRcIjpcIjE1cHhcIn19LFtfdm0uX3YoXCJFUlDnu5Pnrpfku7ZcIildKV0pXSksX2MoJ2VsLXJvdycsW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIkRldGlhbFRhYmxlXCIsc3RhdGljQ2xhc3M6XCJjci10YWJsZVwiLHN0YXRpY1N0eWxlOntcIndpZHRoXCI6XCI5NSVcIixcIm1hcmdpblwiOlwiMTBweFwifSxhdHRyczp7XCJlbGVtZW50LWxvYWRpbmctdGV4dFwiOlwi5ou85ZG95Yqg6L295LitLi4uXCIsXCJlbGVtZW50LWxvYWRpbmctc3Bpbm5lclwiOlwiZWwtaWNvbi1sb2FkaW5nXCIsXCJkYXRhXCI6X3ZtLmZvcm0ucmlnaHRkZXRhaWxzLFwiaGVpZ2h0XCI6X3ZtLmRldGFpbFRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCJ9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCIsXCJ3aWR0aFwiOlwiMTUwcHhcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW19jKCdlbC1pbnB1dCcse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMzVweFwifSxhdHRyczp7XCJzaXplXCI6XCJtaW5pXCJ9LG1vZGVsOnt2YWx1ZTooc2NvcGUucm93LnBhcnRDb2RlKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcInBhcnRDb2RlXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cucGFydENvZGVcIn19KV19fV0pfSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcImRlc2NyaXB0aW9uXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25ZCN56ewXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtaW5wdXQnLHthdHRyczp7XCJzaXplXCI6XCJtaW5pXCJ9LG1vZGVsOnt2YWx1ZTooc2NvcGUucm93LmRlc2NyaXB0aW9uKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcImRlc2NyaXB0aW9uXCIsICQkdil9LGV4cHJlc3Npb246XCJzY29wZS5yb3cuZGVzY3JpcHRpb25cIn19KV19fV0pfSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIixcIndpZHRoXCI6XCIxMjBweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWlucHV0LW51bWJlcicse3N0YXRpY1N0eWxlOntcIndpZHRoXCI6XCIxMDBweFwifSxhdHRyczp7XCJtaW5cIjoxLFwic2l6ZVwiOlwibWluaVwifSxtb2RlbDp7dmFsdWU6KHNjb3BlLnJvdy5wYXJ0TnVtKSxjYWxsYmFjazpmdW5jdGlvbiAoJCR2KSB7X3ZtLiRzZXQoc2NvcGUucm93LCBcInBhcnROdW1cIiwgJCR2KX0sZXhwcmVzc2lvbjpcInNjb3BlLnJvdy5wYXJ0TnVtXCJ9fSldfX1dKX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJ3aWR0aFwiOlwiMzVweFwifSxzY29wZWRTbG90czpfdm0uX3UoW3trZXk6XCJkZWZhdWx0XCIsZm46ZnVuY3Rpb24oc2NvcGUpe3JldHVybiBbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcImljb25cIjpcImVsLWljb24tbWludXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe3JldHVybiBfdm0uaGFuZGxlUmlnaHREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KX19fSldfX1dKX0sW19jKCd0ZW1wbGF0ZScse3Nsb3Q6XCJoZWFkZXJcIn0sW19jKCdlbC1idXR0b24nLHthdHRyczp7XCJpY29uXCI6XCJlbC1pY29uLXBsdXNcIixcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpfdm0uaGFuZGxlQWRkUmlnaHREZXRhaWxzfX0pXSwxKV0sMildLDEpXSwxKV0sMSldKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImRpYWxvZy1mb290ZXJcIixhdHRyczp7XCJzbG90XCI6XCJmb290ZXJcIn0sc2xvdDpcImZvb3RlclwifSxbX2MoJ2VsLWJ1dHRvbicse2F0dHJzOntcInR5cGVcIjpcInRleHRcIn0sb246e1wiY2xpY2tcIjpmdW5jdGlvbigkZXZlbnQpe192bS5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlfX19LFtfdm0uX3YoXCLlj5bmtohcIildKSxfYygnZWwtYnV0dG9uJyx7ZGlyZWN0aXZlczpbe25hbWU6XCJsb2FkaW5nXCIscmF3TmFtZTpcInYtbG9hZGluZ1wiLHZhbHVlOihfdm0uZm9ybUxvYWRpbmcpLGV4cHJlc3Npb246XCJmb3JtTG9hZGluZ1wifV0sYXR0cnM6e1widHlwZVwiOlwicHJpbWFyeVwifSxvbjp7XCJjbGlja1wiOl92bS5zYXZlfX0sW192bS5fdihcIuehruiupFwiKV0pXSwxKV0sMSldLDEpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcInRhYmxlLWZvb3RlclwifSxbX2MoJ3BhZ2luYXRpb24nLHtkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIixyYXdOYW1lOlwidi1zaG93XCIsdmFsdWU6KF92bS50b3RhbENvdW50ID4gMCksZXhwcmVzc2lvbjpcInRvdGFsQ291bnQgPiAwXCJ9XSxhdHRyczp7XCJ0b3RhbFwiOl92bS50b3RhbENvdW50LFwicGFnZVwiOl92bS5wYWdlLFwibGltaXRcIjpfdm0ubGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50fSxvbjp7XCJ1cGRhdGU6cGFnZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLnBhZ2U9JGV2ZW50fSxcInVwZGF0ZTpsaW1pdFwiOmZ1bmN0aW9uKCRldmVudCl7cmV0dXJuIF92bS4kc2V0KF92bS5saXN0UXVlcnksIFwiTWF4UmVzdWx0Q291bnRcIiwgJGV2ZW50KX0sXCJwYWdpbmF0aW9uXCI6X3ZtLmdldExpc3R9fSksX2MoJ2VsLWRyYXdlcicse2F0dHJzOntcInRpdGxlXCI6XCLkv6Hmga/or6bnu4bpobVcIixcInNpemVcIjpcIjc1JVwiLFwiZGlyZWN0aW9uXCI6XCJydGxcIixcInZpc2libGVcIjpfdm0uZHJhd2VyLFwiYmVmb3JlLWNsb3NlXCI6X3ZtLmhhbmRsZURyYXdlckNsb3NlfSxvbjp7XCJ1cGRhdGU6dmlzaWJsZVwiOmZ1bmN0aW9uKCRldmVudCl7X3ZtLmRyYXdlcj0kZXZlbnR9fX0sW19jKCdkaXYnLFtfYygnRGV0YWlsJyx7c3RhdGljU3R5bGU6e1wibWFyZ2luLXRvcFwiOlwiLTM1cHhcIn0sYXR0cnM6e1wiY3VzdG9tZXJJbmZvc1wiOl92bS5jdXN0b21lckluZm9zfX0pXSwxKV0pXSwxKV0pfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge3ZhciBfdm09dGhpczt2YXIgX2g9X3ZtLiRjcmVhdGVFbGVtZW50O3ZhciBfYz1fdm0uX3NlbGYuX2N8fF9oO3JldHVybiBfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjci1ib2R5LWNvbnRlbnRcIn0sW19jKCdlbC10YWJsZScse2RpcmVjdGl2ZXM6W3tuYW1lOlwibG9hZGluZ1wiLHJhd05hbWU6XCJ2LWxvYWRpbmdcIix2YWx1ZTooX3ZtLmxpc3RMb2FkaW5nKSxleHByZXNzaW9uOlwibGlzdExvYWRpbmdcIn1dLHJlZjpcIm11bHRpcGxlVGFibGVcIixzdGF0aWNDbGFzczpcImNyLXRhYmxlXCIsc3RhdGljU3R5bGU6e1wid2lkdGhcIjpcIjEwMCVcIn0sYXR0cnM6e1wiZWxlbWVudC1sb2FkaW5nLXRleHRcIjpcIuaLvOWRveWKoOi9veS4rS4uLlwiLFwiZWxlbWVudC1sb2FkaW5nLXNwaW5uZXJcIjpcImVsLWljb24tbG9hZGluZ1wiLFwiZGF0YVwiOl92bS5saXN0LFwiaGVpZ2h0XCI6X3ZtLnRhYmxlSGVpZ2h0LFwiY2VsbC1zdHlsZVwiOl92bS5jZWxsU3R5bGUsXCJoZWFkZXItY2VsbC1zdHlsZVwiOl92bS5oZWFkZXJSb3dTdHlsZSxcInNpemVcIjpcInNtYWxsXCIsXCJzdHJpcGVcIjpcIlwiLFwiYm9yZGVyXCI6XCJcIixcImhpZ2hsaWdodC1jdXJyZW50LXJvd1wiOlwiXCIsXCJyb3cta2V5XCI6X3ZtLmdldFJvd0tleXMsXCJleHBhbmQtcm93LWtleXNcIjpfdm0uZXhwYW5kc30sb246e1wic29ydC1jaGFuZ2VcIjpfdm0uc29ydENoYW5nZSxcInNlbGVjdGlvbi1jaGFuZ2VcIjpfdm0uaGFuZGxlU2VsZWN0aW9uQ2hhbmdlLFwicm93LWNsaWNrXCI6X3ZtLmhhbmRsZVJvd0NsaWNrLFwiZXhwYW5kLWNoYW5nZVwiOl92bS5leENoYW5nZX19LFtfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1widHlwZVwiOlwiZXhwYW5kXCIsXCJwcm9wXCI6XCJkZXRhaWxzXCJ9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImRlZmF1bHRcIixmbjpmdW5jdGlvbihzY29wZSl7cmV0dXJuIFtfYygnZWwtdGFibGUnLHthdHRyczp7XCJkYXRhXCI6c2NvcGUucm93LmRldGFpbHN9fSxbX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnRDb2RlXCIsXCJsYWJlbFwiOlwi5a6i5oi36Zu25Lu25Luj56CBXCJ9fSksX2MoJ2VsLXRhYmxlLWNvbHVtbicse2F0dHJzOntcInByb3BcIjpcInBhcnROdW1cIixcImxhYmVsXCI6XCLlrqLmiLfpm7bku7bmlbDph49cIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiZGVzY3JpcHRpb25cIixcImxhYmVsXCI6XCLmj4/ov7BcIn19KSxfYygnZWwtdGFibGUtY29sdW1uJyx7YXR0cnM6e1wicHJvcFwiOlwiaXNLZXlcIixcImxhYmVsXCI6XCLmmK/lkKZLZXnku7ZcIn0sc2NvcGVkU2xvdHM6X3ZtLl91KFt7a2V5OlwiZGVmYXVsdFwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gWyhzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZSk/X2MoJ3NwYW4nLFtfYygnc3Bhbicse3N0YXRpY1N0eWxlOntcImNvbG9yXCI6XCIjMDBiNDZkXCJ9fSxbX3ZtLl92KFwi5pivXCIpXSldKTpfYygnc3BhbicsW19jKCdzcGFuJyx7c3RhdGljU3R5bGU6e1wiY29sb3JcIjpcIiNkNzVjODlcIn19LFtfdm0uX3YoXCLlkKZcIildKV0pXX19XSxudWxsLHRydWUpfSldLDEpXX19XSl9KSxfdm0uX2woKF92bS5nZXREZWZhdWx0RmllbGQpLGZ1bmN0aW9uKGl0ZW0saW5kZXgpe3JldHVybiBfYygnZWwtdGFibGUtY29sdW1uJyx7a2V5OmluZGV4LGF0dHJzOntcInByb3BcIjppdGVtLnByb3AsXCJsYWJlbFwiOml0ZW0ubGFiZWwsXCJtaW4td2lkdGhcIjppdGVtLndpZHRoLFwiZm9ybWF0dGVyXCI6X3ZtLmZpZWxkRm9ybWF0dGVyLFwic29ydGFibGVcIjpcImN1c3RvbVwiLFwic2hvdy1vdmVyZmxvdy10b29sdGlwXCI6XCJcIixcImd1dHRlclwiOjB9LHNjb3BlZFNsb3RzOl92bS5fdShbe2tleTpcImhlYWRlclwiLGZuOmZ1bmN0aW9uKHNjb3BlKXtyZXR1cm4gW192bS5fdihcIiBcIitfdm0uX3Moc2NvcGUuY29sdW1uLmxhYmVsKStcIiBcIildfX1dLG51bGwsdHJ1ZSl9KX0pLF9jKCdlbC10YWJsZS1jb2x1bW4nLHthdHRyczp7XCJwcm9wXCI6XCJlcnBBc3NlbWJseVZlcnNpb25cIixcImxhYmVsXCI6XCLmgLvmiJDniYjmnKzlj7dcIixcInNvcnRhYmxlXCI6XCJcIixcIndpZHRoXCI6XCIzNjBcIn19KV0sMiksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwidGFibGUtZm9vdGVyXCJ9LFtfYygncGFnaW5hdGlvbicse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHJhd05hbWU6XCJ2LXNob3dcIix2YWx1ZTooX3ZtLnRvdGFsQ291bnQgPiAwKSxleHByZXNzaW9uOlwidG90YWxDb3VudCA+IDBcIn1dLGF0dHJzOntcInRvdGFsXCI6X3ZtLnRvdGFsQ291bnQsXCJwYWdlXCI6X3ZtLnBhZ2UsXCJsaW1pdFwiOl92bS5saXN0UXVlcnkuTWF4UmVzdWx0Q291bnR9LG9uOntcInVwZGF0ZTpwYWdlXCI6ZnVuY3Rpb24oJGV2ZW50KXtfdm0ucGFnZT0kZXZlbnR9LFwidXBkYXRlOmxpbWl0XCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRzZXQoX3ZtLmxpc3RRdWVyeSwgXCJNYXhSZXN1bHRDb3VudFwiLCAkZXZlbnQpfSxcInBhZ2luYXRpb25cIjpfdm0uZ2V0TGlzdH19KV0sMSldLDEpfVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8IS0tTTEwMOS4iue6v+S/oeaBry3mmI7nu4bmlbDmja4tLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgIDxlbC10YWJsZVxyXG4gICAgICByZWY9XCJtdWx0aXBsZVRhYmxlXCJcclxuICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICBlbGVtZW50LWxvYWRpbmctdGV4dD1cIuaLvOWRveWKoOi9veS4rS4uLlwiXHJcbiAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgIDpkYXRhPVwibGlzdFwiXHJcbiAgICAgIDpoZWlnaHQ9XCJ0YWJsZUhlaWdodFwiXHJcbiAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgOmhlYWRlci1jZWxsLXN0eWxlPVwiaGVhZGVyUm93U3R5bGVcIlxyXG4gICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICBzdHJpcGVcclxuICAgICAgYm9yZGVyXHJcbiAgICAgIGhpZ2hsaWdodC1jdXJyZW50LXJvd1xyXG4gICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgQHNvcnQtY2hhbmdlPVwic29ydENoYW5nZVwiXHJcbiAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlU2VsZWN0aW9uQ2hhbmdlXCJcclxuICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgOnJvdy1rZXk9XCJnZXRSb3dLZXlzXCJcclxuICAgICAgOmV4cGFuZC1yb3cta2V5cz1cImV4cGFuZHNcIlxyXG4gICAgICBAZXhwYW5kLWNoYW5nZT1cImV4Q2hhbmdlXCJcclxuICAgID5cclxuICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgIDwhLS0gPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHByb3A9XCLmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgIGxhYmVsPVwiZXJwQXNzZW1ibHlOYW1lXCJcclxuICAgICAgICBzb3J0YWJsZVxyXG4gICAgICAgIHdpZHRoPVwiMTgwXCJcclxuICAgICAgPlxyXG4gICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHByb3A9XCJlcnBBc3NlbWJseVZlcnNpb25cIlxyXG4gICAgICAgIGxhYmVsPVwi5oC75oiQ54mI5pys5Y+3XCJcclxuICAgICAgICBzb3J0YWJsZVxyXG4gICAgICAgIHdpZHRoPVwiMTgwXCJcclxuICAgICAgPlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IGNhbGMoMTAwJSAtIDQ3cHgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0d28tbGlzdFwiXHJcbiAgICAgIDwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuXHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cImV4cGFuZFwiIHByb3A9XCJkZXRhaWxzXCI+XHJcbiAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgPGVsLXRhYmxlIDpkYXRhPVwic2NvcGUucm93LmRldGFpbHNcIj5cclxuICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgICAgIHByb3A9XCJwYXJ0Q29kZVwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLlrqLmiLfpm7bku7bku6PnoIFcIlxyXG4gICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgICAgICBwcm9wPVwicGFydE51bVwiXHJcbiAgICAgICAgICAgICAgbGFiZWw9XCLlrqLmiLfpm7bku7bmlbDph49cIlxyXG4gICAgICAgICAgICA+PC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLmj4/ov7BcIj48L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwiaXNLZXlcIiBsYWJlbD1cIuaYr+WQpktleeS7tlwiPlxyXG4gICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIHYtaWY9XCJzY29wZS5yb3cuaXNLZXkgPT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjMDBiNDZkXCI+5pivPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gdi1lbHNlPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiAjZDc1Yzg5XCI+5ZCmPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgPC9lbC10YWJsZT5cclxuICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgIHYtZm9yPVwiKGl0ZW0sIGluZGV4KSBpbiBnZXREZWZhdWx0RmllbGRcIlxyXG4gICAgICAgIDprZXk9XCJpbmRleFwiXHJcbiAgICAgICAgOnByb3A9XCJpdGVtLnByb3BcIlxyXG4gICAgICAgIDpsYWJlbD1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgIDptaW4td2lkdGg9XCJpdGVtLndpZHRoXCJcclxuICAgICAgICA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIlxyXG4gICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICBzaG93LW92ZXJmbG93LXRvb2x0aXBcclxuICAgICAgICA6Z3V0dGVyPVwiMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAge3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcbiAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICBwcm9wPVwiZXJwQXNzZW1ibHlWZXJzaW9uXCJcclxuICAgICAgICBsYWJlbD1cIuaAu+aIkOeJiOacrOWPt1wiXHJcbiAgICAgICAgc29ydGFibGVcclxuICAgICAgICB3aWR0aD1cIjM2MFwiXHJcbiAgICAgID5cclxuICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICA8L2VsLXRhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWZvb3RlclwiPlxyXG4gICAgICA8IS0tIOWIhumhteaOp+S7tiBzdHlsZT1cIm1hcmdpbi10b3A6IC0yNXB4O21hcmdpbi1ib3R0b206LTI1cHg7ZmxvYXQ6cmlnaHQ7XCItLT5cclxuICAgICAgPHBhZ2luYXRpb25cclxuICAgICAgICB2LXNob3c9XCJ0b3RhbENvdW50ID4gMFwiXHJcbiAgICAgICAgOnRvdGFsPVwidG90YWxDb3VudFwiXHJcbiAgICAgICAgOnBhZ2Uuc3luYz1cInBhZ2VcIlxyXG4gICAgICAgIDpsaW1pdC5zeW5jPVwibGlzdFF1ZXJ5Lk1heFJlc3VsdENvdW50XCJcclxuICAgICAgICBAcGFnaW5hdGlvbj1cImdldExpc3RcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvdGVtcGxhdGU+XHJcblxyXG48c2NyaXB0PlxyXG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tIFwiQC9jb21wb25lbnRzL1BhZ2luYXRpb25cIjsgLy8gc2Vjb25kYXJ5IHBhY2thZ2UgYmFzZWQgb24gZWwtcGFnaW5hdGlvblxyXG5pbXBvcnQgcGVybWlzc2lvbiBmcm9tIFwiQC9kaXJlY3RpdmUvcGVybWlzc2lvbi9pbmRleC5qc1wiO1xyXG5pbXBvcnQgQ1JNVGFibGVIZWFkIGZyb20gXCIuLi8uLi9jb21wb25lbnRzL0NSTVRhYmxlSGVhZFwiO1xyXG5pbXBvcnQgeyBkb3dubG9hZEZpbGUgfSBmcm9tIFwiQC91dGlscy9jcm1pbmRleC5qc1wiO1xyXG5pbXBvcnQgRGV0YWlsIGZyb20gXCIuL2RldGFpbFwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwic2VuZFVuc2V0dGxlZERpZmZSZXBvcnRcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgRGV0YWlsIH0sXHJcbiAgZGlyZWN0aXZlczogeyBwZXJtaXNzaW9uIH0sXHJcbiAgZmlsdGVyczoge1xyXG4gICAgSXNDdXN0b21lclNpZ25GaWx0ZXIoc3RhdHVzKSB7XHJcbiAgICAgIC8v57+76K+R5piv5ZCm562+5a2XXHJcbiAgICAgIGNvbnN0IHN0YXR1c01hcCA9IHtcclxuICAgICAgICB0cnVlOiBcIuaYr1wiLFxyXG4gICAgICAgIGZhbHNlOiBcIuWQplwiLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c107XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcHJvcHM6IHtcclxuICAgIGN1c3RvbWVySW5mb3M6IHtcclxuICAgICAgdHlwZTogQXJyYXksXHJcbiAgICAgIGRlZmF1bHQ6ICgpID0+IHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNybVR5cGU6IFwic3RvY2tGaXNEaWZmUmVwb3J0XCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgLy/liY3nq6/lrprkuYnnmoTop4TliJnvvIzlkI7nq6/kuZ/mnInpqozor4FcclxuICAgICAgICBlcnBNYXRlcmlhbENvZGU6IFtcclxuICAgICAgICAgIHsgcmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6IFwi5b+F6aG76L6T5YWl77yBXCIsIHRyaWdnZXI6IFwiYmx1clwiIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgfSxcclxuICAgICAgZXhwYW5kczogW10sIC8v5Y+q5bGV5byA5LiA6KGM5pS+5YWl5b2T5YmN6KGMaWRcclxuICAgICAgZ2V0Um93S2V5czogKHJvdykgPT4ge1xyXG4gICAgICAgIHJldHVybiByb3cuaWQ7IC8v6L+Z6YeM55yL6L+Z5LiA6KGM5Lit6ZyA6KaB5qC55o2u5ZOq5Liq5bGe5oCn5YC85pivaWRcclxuICAgICAgfSxcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIHBhcmVudElkOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBmb3JtOiB7XHJcbiAgICAgICAgZGljRGV0YWlsSUQ6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXJJZDogXCJcIixcclxuICAgICAgICBwcm9qZWN0SWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3Q6IG51bGwsXHJcbiAgICAgIHRvdGFsQ291bnQ6IDAsXHJcbiAgICAgIGxpc3RMb2FkaW5nOiB0cnVlLFxyXG4gICAgICBmb3JtTG9hZGluZzogZmFsc2UsXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIEZpbHRlcnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbG9naWM6IDAsXHJcbiAgICAgICAgICAgIGNvbHVtbjogXCJFbmFibGVkXCIsXHJcbiAgICAgICAgICAgIGFjdGlvbjogMCxcclxuICAgICAgICAgICAgdmFsdWU6IFwidHJ1ZVwiLFxyXG4gICAgICAgICAgfSwgLy/pu5jorqTmn6Xor6Llj6/nlKjnmoRcclxuICAgICAgICBdLFxyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgaWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIHBhZ2U6IDEsXHJcbiAgICAgIGRpYWxvZ0Zvcm1WaXNpYmxlOiBmYWxzZSxcclxuICAgICAgbXVsdGlwbGVTZWxlY3Rpb246IFtdLFxyXG4gICAgICBmb3JtVGl0bGU6IFwiXCIsXHJcbiAgICAgIGRyYXdlcjogZmFsc2UsXHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIHRhYmxlSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0zMCAsXHJcbiAgICAgIGlzRWRpdDogZmFsc2VcclxuICAgIH07XHJcbiAgfSxcclxuICBtb3VudGVkKCkge1xyXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgd2luZG93Lm9ucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgb2Zmc2V0SGVpID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgc2VsZi50YWJsZUhlaWdodCA9IG9mZnNldEhlaSAtIDMwO1xyXG4gICAgfTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICB0aGlzLmdldExpc3QoKTtcclxuICB9LFxyXG4gIHdhdGNoOiB7XHJcbiAgICBjdXN0b21lckluZm9zOiB7XHJcbiAgICAgIGhhbmRsZXIobmV3VmFsKSB7XHJcbiAgICAgICAgaWYgKG5ld1ZhbCA9PSBcIlwiIHx8IG5ld1ZhbCA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgICAgICAvL1RPRE9cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3VmFsLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgPSBlbGVtZW50LlBhcmVudElkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5jdXN0b21lckluZm8ucGFyZW50SWQgIT0gXCJcIikge1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGltbWVkaWF0ZTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgLyoqIOWIl+ihqOWtl+autSAqL1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICB2YXIgdGVtcHNUYWJzID0gW107XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLmgLvmiJDnvJblj7dcIixcclxuICAgICAgICBwcm9wOiBcImVycEFzc2VtYmx5Q29kZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxNjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5oC75oiQ5ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJlcnBBc3NlbWJseU5hbWVcIixcclxuICAgICAgICB3aWR0aDogMTYwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuaAu+aIkOeJiOacrOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwiZXJwQXNzZW1ibHlOYW1lXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDE2MCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHJldHVybiB0ZW1wc1RhYnM7XHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgbWV0aG9kczoge1xyXG4gICAgZXhDaGFuZ2Uocm93LCByb3dMaXN0KSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgdGhhdCA9IHRoaXM7XHJcbiAgICAgIGlmIChyb3dMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICAgIGlmIChyb3cpIHtcclxuICAgICAgICAgIHRoYXQuZXhwYW5kcy5wdXNoKHJvdy5pZCk7IC8vIOWPquWxleW8gOW9k+WJjeihjGlkXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoYXQuZXhwYW5kcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDmoLzlvI/ljJblrZfmrrUgKi9cclxuICAgIGZpZWxkRm9ybWF0dGVyKHJvdywgY29sdW1uKSB7XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgaW1wb3J0RXhjZWxEYXRhKCkge1xyXG4gICAgICAvL+WFs+mXreWvvOWFpeeql+S9k+aXtuiwg+eUqFxyXG4gICAgICB0aGlzLnNob3dFeGNlbEltcG9ydCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcbiAgICBnZXRMaXN0KCkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgY29uc29sZS5sb2coXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIC8vYWxlcnQoXCLor6booajmnaHku7bvvJpcIiArIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkKSk7XHJcbiAgICAgIGxldCB2ZWhpY2xlQXNzZW1ibHlJZCA9IHsgdmVoaWNsZUFzc2VtYmx5SWQ6IHRoaXMuY3VzdG9tZXJJbmZvLnBhcmVudElkIH07XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9hc3NlbWJseS1jZmctdmVoaWNsZS9saXN0XCIsIHZlaGljbGVBc3NlbWJseUlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5saXN0ID0gcmVzcG9uc2U7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgLy/lpKfmlbDmja7ph4/liqDovb3ml7ZcclxuICAgICAgICAgICAgdGhpcy5saXN0TG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOetm+mAieaTjeS9nCAqL1xyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuRmlsdGVycyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5zZWFyY2hDb250ZW50ICE9IFwiXCIpIHtcclxuICAgICAgICB2YXIgY29sdW1uID0gXCJwYXJ0Q29kZVwiO1xyXG4gICAgICAgIGxldCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICBsb2dpYzogMCxcclxuICAgICAgICAgIGNvbHVtbjogY29sdW1uLFxyXG4gICAgICAgICAgYWN0aW9uOiA2LFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuc2VhcmNoQ29udGVudCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LkZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIHJlc2V0UXVlcnkoKSB7fSxcclxuXHJcbiAgICBzb3J0Q2hhbmdlKGRhdGEpIHtcclxuICAgICAgY29uc3QgeyBwcm9wLCBvcmRlciB9ID0gZGF0YTtcclxuICAgICAgaWYgKCFwcm9wIHx8ICFvcmRlcikge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNvcnRpbmcgPSBwcm9wICsgXCIgXCIgKyBvcmRlcjtcclxuICAgICAgdGhpcy5oYW5kbGVGaWx0ZXIoKTtcclxuICAgIH0sXHJcbiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UodmFsKSB7XHJcbiAgICAgIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPSB2YWw7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJsZWZ0XCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDpgJrov4flm57osIPmjqfliLbooajlpLRzdHlsZSAqL1xyXG4gICAgaGVhZGVyUm93U3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJmaXNRdHlcIiB8fFxyXG4gICAgICAgIGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJkaWZmUXR5XCIgfHxcclxuICAgICAgICBjb2x1bW4ucHJvcGVydHkgPT09IFwic3RvY2tRdHlcIlxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwicmlnaHRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4geyB0ZXh0QWxpZ246IFwibGVmdFwiLCBiYWNrZ3JvdW5kOiBcIiNGQUZBRkFcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlUm93Q2xpY2socm93LCBjb2x1bW4sIGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKHJvdyk7XHJcbiAgICB9LFxyXG4gIH0sXHJcbn07XHJcbjwvc2NyaXB0PlxyXG5cclxuXHJcbjxzdHlsZSBsYW5nPVwic2Nzc1wiIHNjb3BlZD5cclxuQGltcG9ydCBcIi4uLy4uLy4uL3BnLWZpcy9zdHlsZXMvY3JtdGFibGUuc2Nzc1wiO1xyXG48L3N0eWxlPlxyXG5cclxuIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEzLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xLTAhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2RldGFpbC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2RldGFpbC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MjI0MzI0Zjcmc2NvcGVkPXRydWUmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vZGV0YWlsLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuaW1wb3J0IHN0eWxlMCBmcm9tIFwiLi9kZXRhaWwudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjI0MzI0ZjcmbGFuZz1zY3NzJnNjb3BlZD10cnVlJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCIyMjQzMjRmN1wiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsIjwhLS3mgLvmiJDmqKHlnZfkv6Hmga/nrqHnkIbpobUtLT5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjci1ib2R5LWNvbnRlbnRcIj5cclxuICAgIDxkaXYgcmVmPVwiYm94XCI+XHJcbiAgICA8ZmxleGJveCBjbGFzcz1cImNvbnRlbnQtaGVhZGVyXCIgPlxyXG4gICAgICA8ZWwtZm9ybVxyXG4gICAgICAgIDptb2RlbD1cImxpc3RRdWVyeVwiXHJcbiAgICAgICAgcmVmPVwicXVlcnlGb3JtXCJcclxuICAgICAgICB2LXNob3c9XCJzaG93U2VhcmNoXCJcclxuICAgICAgICA6aW5saW5lPVwidHJ1ZVwiXHJcbiAgICAgID5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi55Sf5Lqn57q/OlwiIHByb3A9XCJwcm9kdWN0VHlwZVwiPlxyXG4gICAgICAgICAgPGVsLXNlbGVjdFxyXG4gICAgICAgICAgICB2LW1vZGVsPVwibGlzdFF1ZXJ5LnByb2R1Y3RUeXBlXCJcclxuICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36YCJ5oupXCJcclxuICAgICAgICAgICAgc2l6ZT1cIm1lZGl1bVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxNXB4XCJcclxuICAgICAgICAgICAgQGNoYW5nZT1cInB0eXBlc2VsZWN0Q2hhbmdlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGVsLW9wdGlvblxyXG4gICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHByb2R1Y3RUeXBlTGlzdFwiXHJcbiAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5pZFwiXHJcbiAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgOnZhbHVlPVwiaXRlbS5pZFwiIC8+ICBcclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJcIiBwcm9wPVwicHJvZHVjdExpbmVcIj5cclxuICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5wcm9kdWN0TGluZVwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+mAieaLqVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtZWRpdW1cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTVweFwiXHJcbiAgICAgICAgICAgIEBjaGFuZ2U9XCJ2YWx1ZXNlbGVjdENoYW5nZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgIHYtZm9yPVwiaXRlbSBpbiBQTENoaWxkTGlzdFwiXHJcbiAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5wcm9kdWN0TGluZU5hbWVcIlxyXG4gICAgICAgICAgICA6dmFsdWU9XCJpdGVtLnByb2R1Y3RMaW5lQ29kZVwiLz5cclxuICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG5cclxuICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLniYjmnKw6XCIgcHJvcD1cIlZlcnNpb25cIj5cclxuICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5WZXJzaW9uXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3OlwiIHByb3A9XCJIb3N0U05CZWdpblwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNOQmVnaW5cIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIkhvc3RTTkVuZFwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuSG9zdFNORW5kXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjQwcHhcIlxyXG4gICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIktOUjpcIiBwcm9wPVwiS05SQmVnaW5cIiA+XHJcbiAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJCZWdpblwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiXCJcclxuICAgICAgICAgICAgY2xlYXJhYmxlXHJcbiAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDI0MHB4XCJcclxuICAgICAgICAgICAgQGtleXVwLmVudGVyLm5hdGl2ZT1cImhhbmRsZVF1ZXJ5XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIi1cIiBwcm9wPVwiS05SRW5kXCI+XHJcbiAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5LTlJFbmRcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgPCEtLSA8ZWwtcm93PiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiIHByb3A9XCJWSU5CZWdpblwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklOQmVnaW5cIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXHJcbiAgICAgICAgICAgIGNsZWFyYWJsZVxyXG4gICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAyNDBweFwiXHJcbiAgICAgICAgICAgIEBrZXl1cC5lbnRlci5uYXRpdmU9XCJoYW5kbGVRdWVyeVwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCItXCIgcHJvcD1cIlZJTkVuZFwiPlxyXG4gICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuVklORW5kXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIlxyXG4gICAgICAgICAgICBjbGVhcmFibGVcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMjQwcHhcIlxyXG4gICAgICAgICAgICBAa2V5dXAuZW50ZXIubmF0aXZlPVwiaGFuZGxlUXVlcnlcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuXHJcbiAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuS4iue6v+aXpeacn1wiPlxyXG4gICAgICAgICAgPGVsLWRhdGUtcGlja2VyXHJcbiAgICAgICAgICAgIHYtbW9kZWw9XCJsaXN0UXVlcnkuT25saW5lVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIlxyXG4gICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIiA6ZGVmYXVsdC10aW1lPVwiWycwMDowMDowMCcsJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgIDwhLS0gPC9lbC1yb3c+IC0tPlxyXG4gICAgICA8IS0tIDxlbC1yb3c+IC0tPlxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmjqXmlLbml6XmnJ9cIiA+XHJcbiAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgdi1tb2RlbD1cImxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlXCJcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzgwcHhcIlxyXG4gICAgICAgICAgICB2YWx1ZS1mb3JtYXQ9XCJ5eXl5LU1NLWRkIEhIOm1tOnNzXCJcclxuICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lcmFuZ2VcIiA6ZGVmYXVsdC10aW1lPVwiWycwMDowMDowMCcsJzIzOjU5OjU5J11cIlxyXG4gICAgICAgICAgICByYW5nZS1zZXBhcmF0b3I9XCItXCJcclxuICAgICAgICAgICAgc3RhcnQtcGxhY2Vob2xkZXI9XCLlvIDlp4vml6XmnJ9cIlxyXG4gICAgICAgICAgICBlbmQtcGxhY2Vob2xkZXI9XCLnu5PmnZ/ml6XmnJ9cIlxyXG4gICAgICAgICAgPjwvZWwtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcblxyXG4gICAgICAgIDxlbC1mb3JtLWl0ZW0gPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLXNlYXJjaFwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlRmlsdGVyXCJcclxuICAgICAgICAgICAgPuaQnOe0ojwvZWwtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLXJlZnJlc2hcIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cInJlc2V0UXVlcnkoJ3F1ZXJ5Rm9ybScpXCJcclxuICAgICAgICAgICAgPumHjee9rjwvZWwtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcclxuICAgICAgICAgICAgcGxhaW5cclxuICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZG93bmxvYWRcIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDE1cHhcIlxyXG4gICAgICAgICAgICBAY2xpY2s9XCJoYW5kbGVEb3dubG9hZCgpXCJcclxuICAgICAgICAgICAgPuWvvOWHuihFeGNlbClcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8IS0tIDwvZWwtcm93PiAtLT5cclxuICAgICAgICA8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjFcIiA+PC9lbC1kaXZpZGVyPiAtLT5cclxuICAgICAgICA8ZWwtZm9ybS1pdGVtIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMHB4O21hcmdpbi10b3A6IC0xcHhcIj5cclxuICAgICAgICAgIDxlbC1idXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItaXRlbVwiXHJcbiAgICAgICAgICAgIHNpemU9XCJtaW5pXCJcclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBpY29uPVwiZWwtaWNvbi1wbHVzXCJcclxuICAgICAgICAgICAgQGNsaWNrPVwiaGFuZGxlQ3JlYXRlXCJcclxuICAgICAgICAgICAgPuaWsOWinlxyXG4gICAgICAgICAgPC9lbC1idXR0b24+XHJcbiAgICAgICAgICA8ZWwtYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmlsdGVyLWl0ZW1cIlxyXG4gICAgICAgICAgICBzaXplPVwibWluaVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgaWNvbj1cImVsLWljb24tZWRpdFwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZVVwZGF0ZVwiXHJcbiAgICAgICAgICAgID7kv67mlLlcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImZpbHRlci1pdGVtXCJcclxuICAgICAgICAgICAgc2l6ZT1cIm1pbmlcIlxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIGljb249XCJlbC1pY29uLWRlbGV0ZVwiXHJcbiAgICAgICAgICAgIEBjbGljaz1cImhhbmRsZURlbGV0ZVwiXHJcbiAgICAgICAgICAgID7liKDpmaRcclxuICAgICAgICAgIDwvZWwtYnV0dG9uPlxyXG4gICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICA8L2VsLWZvcm0+XHJcbiAgICA8L2ZsZXhib3g+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJsLXRhYmxlXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOXB4XCI+XHJcbiAgICAgIDwhLS3ooajmoLzmuLLmn5MtLT5cclxuICAgICAgPGVsLXRhYmxlXHJcbiAgICAgICAgcmVmPVwibXVsdGlwbGVUYWJsZVwiXHJcbiAgICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgICBlbGVtZW50LWxvYWRpbmctc3Bpbm5lcj1cImVsLWljb24tbG9hZGluZ1wiXHJcbiAgICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgICAgOmRhdGE9XCJsaXN0XCJcclxuICAgICAgICA6aGVpZ2h0PVwidGFibGVIZWlnaHRcIlxyXG4gICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICBzdHJpcGVcclxuICAgICAgICBib3JkZXJcclxuICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICBzdHlsZT1cIndpZHRoOiAxMDAlXCJcclxuICAgICAgICBAc29ydC1jaGFuZ2U9XCJzb3J0Q2hhbmdlXCJcclxuICAgICAgICBAc2VsZWN0aW9uLWNoYW5nZT1cImhhbmRsZVNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgQHJvdy1jbGljaz1cImhhbmRsZVJvd0NsaWNrXCJcclxuICAgICAgPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxlbC10YWJsZS1jb2x1bW5cclxuICAgICAgICAgIGxhYmVsPVwi5bqV55uY5Y+3XCJcclxuICAgICAgICAgIHByb3A9XCJ2aW4gXCJcclxuICAgICAgICAgIHNvcnRhYmxlPVwiY3VzdG9tXCJcclxuICAgICAgICAgIGFsaWduPVwiY2VudGVyXCJcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgd2lkdGg9XCIxODBweFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpbmstdHlwZVwiIEBjbGljaz1cImhhbmRsZURyYXdlck9wZW4oc2NvcGUucm93KVwiPnt7XHJcbiAgICAgICAgICAgICAgc2NvcGUucm93LnZpblxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgPGVsLXRhYmxlLWNvbHVtblxyXG4gICAgICAgICAgdi1mb3I9XCIoaXRlbSwgaW5kZXgpIGluIGdldERlZmF1bHRGaWVsZFwiXHJcbiAgICAgICAgICA6a2V5PVwiaW5kZXhcIlxyXG4gICAgICAgICAgOnByb3A9XCJpdGVtLnByb3BcIlxyXG4gICAgICAgICAgOmxhYmVsPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICA6bWluLXdpZHRoPVwiaXRlbS53aWR0aFwiXHJcbiAgICAgICAgICA6Zm9ybWF0dGVyPVwiZmllbGRGb3JtYXR0ZXJcIlxyXG4gICAgICAgICAgc29ydGFibGU9XCJjdXN0b21cIlxyXG4gICAgICAgICAgc2hvdy1vdmVyZmxvdy10b29sdGlwXHJcbiAgICAgICAgICA6Z3V0dGVyPVwiMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJoZWFkZXJcIiBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAge3sgc2NvcGUuY29sdW1uLmxhYmVsIH19XHJcbiAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICA8L2VsLXRhYmxlPlxyXG5cclxuICAgICAgPCEtLeihqOWNlea4suafky0tPlxyXG4gICAgICA8ZWwtZGlhbG9nXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRpYWxvZ0Zvcm1WaXNpYmxlXCJcclxuICAgICAgICA6Y2xvc2Utb24tY2xpY2stbW9kYWw9XCJmYWxzZVwiXHJcbiAgICAgICAgOnRpdGxlPVwiZm9ybVRpdGxlXCJcclxuICAgICAgICB3aWR0aD1cIjEwMDBweFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZWwtZm9ybVxyXG4gICAgICAgICAgcmVmPVwiZm9ybVwiXHJcbiAgICAgICAgICA6aW5saW5lPVwidHJ1ZVwiXHJcbiAgICAgICAgICA6bW9kZWw9XCJmb3JtXCJcclxuICAgICAgICAgIDpydWxlcz1cInJ1bGVzXCJcclxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICBsYWJlbC13aWR0aD1cIjEyMHB4XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwiS05SOlwiIHByb3A9XCJrbnJcIiByZXF1aXJlZCA+XHJcbiAgICAgICAgICAgICAgICA8ZWwtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0ua25yXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fpgInmi6nmt7vliqBNMTAw5L+h5oGv5a+55bqU55qES05S5Y+3XCJcclxuICAgICAgICAgICAgICAgICAgZmlsdGVyYWJsZVxyXG4gICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIEBjaGFuZ2U9XCJnZXRWTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIEtOUmxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmtuclwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmxhYmVsPVwiaXRlbS5rbnJcIlxyXG4gICAgICAgICAgICAgICAgICAgIDp2YWx1ZT1cIml0ZW0ua25yXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgPC9lbC1yb3c+XHJcblxyXG4gICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgPGVsLWNvbCA6c3Bhbj1cIjEyXCI+XHJcbiAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIui9puWeizpcIiBwcm9wPVwidmVoaWNsZU1vZGVsQ29kZVwiIHJlcXVpcmVkID5cclxuICAgICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzUwcHhcIlxyXG4gICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS52ZWhpY2xlTW9kZWxDb2RlXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICBAY2hhbmdlPVwidk1jaGFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIDprZXk9XCJpdGVtLmlkXCJcclxuICAgICAgICAgICAgICAgICAgICA6bGFiZWw9XCJpdGVtLmRpY0l0ZW1OYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgIDwvZWwtY29sPlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5bqV55uY5Y+3OlwiICBwcm9wPVwidmluXCIgcmVxdWlyZWQgPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0udmluXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuXHJcbiAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICA8ZWwtY29sIDpzcGFuPVwiMTJcIj5cclxuICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5aSn5LyX6aG65bqP5Y+3OlwiICBwcm9wPVwiaG9zdFNOXCIgcmVxdWlyZWQgPlxyXG4gICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDM1MHB4XCJcclxuICAgICAgICAgICAgICAgICAgdi1tb2RlbD1cImZvcm0uaG9zdFNOXCJcclxuICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLkuIrnur/ml6XmnJ86XCIgcHJvcD1cIm9ubGluZVRpbWVcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICA8ZWwtZGF0ZS1waWNrZXJcclxuICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLm9ubGluZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzUwcHhcIlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImRhdGV0aW1lXCJcclxuICAgICAgICAgICAgICAgIHZhbHVlLWZvcm1hdD1cInl5eXktTU0tZGQgSEg6bW06c3NcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLpgInmi6nml7bpl7RcIlxyXG4gICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2VsLWRhdGUtcGlja2VyPlxyXG4gICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICA8L2VsLWNvbD5cclxuICAgICAgICAgIDwvZWwtcm93PlxyXG5cclxuICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNFNEU0RTQ7d2lkdGg6OTQlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDojRjFGMUYxO3dpZHRoOjEwMCU7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzFweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNXB4XCI+RVJQ5oC75oiQPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cIkxlZnREZXRpYWxUYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdi1sb2FkaW5nPVwibGlzdExvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtbG9hZGluZy10ZXh0PVwi5ou85ZG95Yqg6L295LitLi4uXCJcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LWxvYWRpbmctc3Bpbm5lcj1cImVsLWljb24tbG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjci10YWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgOmRhdGE9XCJmb3JtLmxlZnRkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVpZ2h0PVwiZGV0YWlsVGFibGVIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiA5NSU7bWFyZ2luOjEwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgIEByb3ctY2xpY2s9XCJoYW5kbGVMZWZ0Um93Q2xpY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIEBzZWxlY3Rpb24tY2hhbmdlPVwiaGFuZGxlTGVmdFNlbGVjdGlvbkNoYW5nZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxlbC10YWJsZS1jb2x1bW4gdHlwZT1cInNlbGVjdGlvblwiIHdpZHRoPVwiNDRweFwiPjwvZWwtdGFibGUtY29sdW1uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJlcnBBc3NlbWJseUNvZGVcIiBsYWJlbD1cIkVSUOaAu+aIkOe8luWPt1wiIHdpZHRoPVwiMTUwcHhcIiA+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5lcnBBc3NlbWJseUNvZGVcIiBzaXplPVwibWluaVwiIHN0eWxlPVwid2lkdGg6MTM1cHhcIj48L2VsLWlucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJlcnBBc3NlbWJseU5hbWVcIiBsYWJlbD1cIkVSUOaAu+aIkOWQjeensFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5lcnBBc3NlbWJseU5hbWVcIiBzaXplPVwibWluaVwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPiBcclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uICB3aWR0aD1cIjM1cHhcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgc2xvdD1cImhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZUFkZExlZnREZXRhaWxzXCIgaWNvbj1cImVsLWljb24tcGx1c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZUxlZnREZWxldGVEZXRhaWxzKHNjb3BlLiRpbmRleCwgc2NvcGUucm93KVwiIGljb249XCJlbC1pY29uLW1pbnVzXCIgdHlwZT1cInRleHRcIj48L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9lbC10YWJsZS1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGU+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGVsLWRpdmlkZXIgY2xhc3M9XCJkaXZpZGVyMlwiICBjb250ZW50LXBvc2l0aW9uPVwibGVmdFwiPua3u+WKoEVSUOaAu+aIkDwvZWwtZGl2aWRlcj5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCJFUlDmgLvmiJDnvJbnoIE6XCIgcHJvcD1cImVycEFzc2VtYmx5Q29kZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS5lcnBBc3NlbWJseUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5oC75oiQ57yW56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIkVSUOaAu+aIkOWQjeensDpcIiBwcm9wPVwiZXJwQXNzZW1ibHlOYW1lXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmVycEFzc2VtYmx5TmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvZWwtZm9ybS1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi6L2m5Z6LOlwiIHByb3A9XCJ2ZWhpY2xlTW9kZWxcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnZlaGljbGVNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6ZGlzYWJsZWQ9XCJpc0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXmgLvmiJDlkI3np7BcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxlbC1vcHRpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgdi1mb3I9XCJpdGVtIGluIHZlaGljbGVNb2RlbExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiaXRlbS5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDpsYWJlbD1cIml0ZW0uZGljSXRlbU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6dmFsdWU9XCJpdGVtLmRpY0l0ZW1Db2RlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO21hcmdpbjogMHB4O21hcmdpbi1ib3R0b206IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIiBAY2xpY2s9XCJsZWZ0Y2xpY2tcIj7mt7vliqDmgLvmiJA8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICAgIDxlbC1jb2wgOnNwYW49XCIxMlwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJib3JkZXI6MXB4IHNvbGlkICNFNEU0RTQ7d2lkdGg6OTQlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDojRjFGMUYxO3dpZHRoOjEwMCU7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzFweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgc3R5bGU9XCJtYXJnaW4tbGVmdDoxNXB4XCI+RVJQ57uT566X5Lu2PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC10YWJsZVxyXG4gICAgICAgICAgICAgICAgICAgIHJlZj1cIkRldGlhbFRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICB2LWxvYWRpbmc9XCJsaXN0TG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC1sb2FkaW5nLXRleHQ9XCLmi7zlkb3liqDovb3kuK0uLi5cIlxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtbG9hZGluZy1zcGlubmVyPVwiZWwtaWNvbi1sb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNyLXRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6ZGF0YT1cImZvcm0ucmlnaHRkZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVpZ2h0PVwiZGV0YWlsVGFibGVIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDpjZWxsLXN0eWxlPVwiY2VsbFN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICA6aGVhZGVyLWNlbGwtc3R5bGU9XCJoZWFkZXJSb3dTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJpcGVcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXJcclxuICAgICAgICAgICAgICAgICAgICBoaWdobGlnaHQtY3VycmVudC1yb3dcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiA5NSU7bWFyZ2luOjEwcHhcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZWwtdGFibGUtY29sdW1uIHR5cGU9XCJzZWxlY3Rpb25cIiB3aWR0aD1cIjQ0cHhcIj48L2VsLXRhYmxlLWNvbHVtbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLXRhYmxlLWNvbHVtbiBwcm9wPVwicGFydENvZGVcIiBsYWJlbD1cIuWuouaIt+mbtuS7tuS7o+eggVwiIHdpZHRoPVwiMTUwcHhcIiA+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQgdi1tb2RlbD1cInNjb3BlLnJvdy5wYXJ0Q29kZVwiIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJ3aWR0aDoxMzVweFwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC10YWJsZS1jb2x1bW4gcHJvcD1cImRlc2NyaXB0aW9uXCIgbGFiZWw9XCLlrqLmiLfpm7bku7blkI3np7BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90LXNjb3BlPVwic2NvcGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0IHYtbW9kZWw9XCJzY29wZS5yb3cuZGVzY3JpcHRpb25cIiBzaXplPVwibWluaVwiPjwvZWwtaW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPiBcclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHByb3A9XCJwYXJ0TnVtXCIgbGFiZWw9XCLlrqLmiLfpm7bku7bmlbDph49cIiB3aWR0aD1cIjEyMHB4XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXQtbnVtYmVyIHYtbW9kZWw9XCJzY29wZS5yb3cucGFydE51bVwiIDptaW49XCIxXCIgIHNpemU9XCJtaW5pXCIgc3R5bGU9XCJ3aWR0aDoxMDBweFwiPjwvZWwtaW5wdXQtbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlLWNvbHVtbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtdGFibGUtY29sdW1uIHdpZHRoPVwiMzVweFwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gQGNsaWNrPVwiaGFuZGxlQWRkUmlnaHREZXRhaWxzXCIgaWNvbj1cImVsLWljb24tcGx1c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHNsb3Qtc2NvcGU9XCJzY29wZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZWwtYnV0dG9uIEBjbGljaz1cImhhbmRsZVJpZ2h0RGVsZXRlRGV0YWlscyhzY29wZS4kaW5kZXgsIHNjb3BlLnJvdylcIiBpY29uPVwiZWwtaWNvbi1taW51c1wiIHR5cGU9XCJ0ZXh0XCI+PC9lbC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZWwtdGFibGUtY29sdW1uPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLXRhYmxlPlxyXG4gICAgICAgICAgICAgICAgPC9lbC1yb3c+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxlbC1kaXZpZGVyIGNsYXNzPVwiZGl2aWRlcjJcIiAgY29udGVudC1wb3NpdGlvbj1cImxlZnRcIj7mt7vliqBFUlDnu5Pnrpfku7Y8L2VsLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgICA8ZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgICA8ZWwtZm9ybS1pdGVtIGxhYmVsPVwi5a6i5oi36Zu25Lu25Luj56CBOlwiIHByb3A9XCJjdXN0b21lclBhcnRDb2RlXCIgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZWwtaW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLmN1c3RvbWVyUGFydENvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5a6i5oi36Zu25Lu25Luj56CBXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGVsLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGVsLWZvcm0taXRlbSBsYWJlbD1cIuWuouaIt+mbtuS7tuWQjeensDpcIiBwcm9wPVwiY3VzdG9tZXJQYXJ0TmFtZVwiICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGVsLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzMTVweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZm9ybS5jdXN0b21lclBhcnROYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImlzRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeaAu+aIkOWQjeensFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgPC9lbC1mb3JtLWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICAgICAgICAgIDxlbC1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1mb3JtLWl0ZW0gbGFiZWw9XCLmlbDph486XCIgcHJvcD1cInBhcnRRdHlcIiAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxlbC1pbnB1dC1udW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMxNXB4XCJcclxuICAgICAgICAgICAgICAgICAgICAgIHYtbW9kZWw9XCJmb3JtLnBhcnRRdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOmRpc2FibGVkPVwiaXNFZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIDptaW49XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2VsLWZvcm0taXRlbT5cclxuICAgICAgICAgICAgICAgIDwvZWwtcm93PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO21hcmdpbjogMHB4O21hcmdpbi1ib3R0b206IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxlbC1idXR0b24gdHlwZT1cInByaW1hcnlcIj7mt7vliqDpm7bku7Y8L2VsLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9lbC1jb2w+XHJcbiAgICAgICAgICA8L2VsLXJvdz5cclxuICAgICAgICA8L2VsLWZvcm0+XHJcbiAgICAgICAgPCEtLeihqOagvOa4suafky0tPlxyXG4gICAgICAgIDxkaXYgc2xvdD1cImZvb3RlclwiIGNsYXNzPVwiZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgICAgICAgPGVsLWJ1dHRvbiB0eXBlPVwidGV4dFwiIEBjbGljaz1cImRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2VcIlxyXG4gICAgICAgICAgICA+5Y+W5raIPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxlbC1idXR0b24gdi1sb2FkaW5nPVwiZm9ybUxvYWRpbmdcIiB0eXBlPVwicHJpbWFyeVwiIEBjbGljaz1cInNhdmVcIlxyXG4gICAgICAgICAgICA+56Gu6K6kPC9lbC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9lbC1kaWFsb2c+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtZm9vdGVyXCI+XHJcbiAgICAgIDwhLS0g5YiG6aG15o6n5Lu2IHN0eWxlPVwibWFyZ2luLXRvcDogLTI1cHg7bWFyZ2luLWJvdHRvbTotMjVweDtmbG9hdDpyaWdodDtcIi0tPlxyXG4gICAgICA8cGFnaW5hdGlvblxyXG4gICAgICAgIHYtc2hvdz1cInRvdGFsQ291bnQgPiAwXCJcclxuICAgICAgICA6dG90YWw9XCJ0b3RhbENvdW50XCJcclxuICAgICAgICA6cGFnZS5zeW5jPVwicGFnZVwiXHJcbiAgICAgICAgOmxpbWl0LnN5bmM9XCJsaXN0UXVlcnkuTWF4UmVzdWx0Q291bnRcIlxyXG4gICAgICAgIEBwYWdpbmF0aW9uPVwiZ2V0TGlzdFwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDwhLS0g5oq95bGJ5o6n5Lu2IC0tPlxyXG4gICAgICA8ZWwtZHJhd2VyXHJcbiAgICAgICAgdGl0bGU9XCLkv6Hmga/or6bnu4bpobVcIlxyXG4gICAgICAgIHNpemU9XCI3NSVcIlxyXG4gICAgICAgIGRpcmVjdGlvbj1cInJ0bFwiXHJcbiAgICAgICAgOnZpc2libGUuc3luYz1cImRyYXdlclwiXHJcbiAgICAgICAgOmJlZm9yZS1jbG9zZT1cImhhbmRsZURyYXdlckNsb3NlXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8RGV0YWlsXHJcbiAgICAgICAgICAgIHYtYmluZDpjdXN0b21lckluZm9zPVwiY3VzdG9tZXJJbmZvc1wiXHJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogLTM1cHhcIlxyXG4gICAgICAgICAgPjwvRGV0YWlsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2VsLWRyYXdlcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHNjcmlwdD5cclxuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSBcIkAvY29tcG9uZW50cy9QYWdpbmF0aW9uXCI7XHJcbmltcG9ydCBwZXJtaXNzaW9uIGZyb20gXCJAL2RpcmVjdGl2ZS9wZXJtaXNzaW9uL2luZGV4LmpzXCI7XHJcbmltcG9ydCBDUk1UYWJsZUhlYWQgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkXCI7XHJcbmltcG9ydCBpbXBvcnRFeGNlbCBmcm9tIFwiQC9jb21wb25lbnRzL0ltcG9ydEV4Y2VsLXZ3XCI7XHJcbmltcG9ydCBMb2NrciBmcm9tIFwibG9ja3JcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IG1hcEdldHRlcnMgfSBmcm9tICd2dWV4JztcclxuaW1wb3J0IERldGFpbCBmcm9tIFwiLi9kZXRhaWwudnVlXCI7XHJcbmltcG9ydCB7IGRvd25sb2FkRmlsZSB9IGZyb20gXCJAL3V0aWxzL2NybWluZGV4LmpzXCI7XHJcblxyXG4vL+e7hOS7tuiuoemHj+WNleS9jVxyXG5jb25zdCBib21Vbml0ID0gW1xyXG4gIHsga2V5OiAwLCBkaXNwbGF5X25hbWU6IFwiUENcIiB9LFxyXG4gIHsga2V5OiAxLCBkaXNwbGF5X25hbWU6IFwiVE9OXCIgfSxcclxuICB7IGtleTogMiwgZGlzcGxheV9uYW1lOiBcIk90aGVyXCIgfSxcclxuXTtcclxuY29uc3QgcHJvamVjdFR5cGVLZXlWYWx1ZSA9IGJvbVVuaXQucmVkdWNlKChhY2MsIGN1cikgPT4ge1xyXG4gIGFjY1tjdXIua2V5XSA9IGN1ci5kaXNwbGF5X25hbWU7XHJcbiAgcmV0dXJuIGFjYztcclxufSwge30pO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIG5hbWU6IFwibTEwMEJpbGxcIixcclxuICBjb21wb25lbnRzOiB7IFBhZ2luYXRpb24sIENSTVRhYmxlSGVhZCwgaW1wb3J0RXhjZWwsIERldGFpbCB9LFxyXG4gIGRpcmVjdGl2ZXM6IHsgcGVybWlzc2lvbiB9LFxyXG4gIGZpbHRlcnM6IHtcclxuICAgIElzQ3VzdG9tZXJTaWduRmlsdGVyKHN0YXR1cykge1xyXG4gICAgICAvL+e/u+ivkeaYr+WQpuetvuWtl1xyXG4gICAgICBjb25zdCBzdGF0dXNNYXAgPSB7XHJcbiAgICAgICAgdHJ1ZTogXCLmmK9cIixcclxuICAgICAgICBmYWxzZTogXCLlkKZcIixcclxuICAgICAgfTtcclxuICAgICAgcmV0dXJuIHN0YXR1c01hcFtzdGF0dXNdO1xyXG4gICAgfSxcclxuICB9LFxyXG4gIGRhdGEoKSB7XHJcbiAgICBjb25zdCB2YWxpZFZlcnNpb24gPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgIGxldCBudW1iZXJSZWcgPSAvXlxcZHs2fSQvO1xyXG4gICAgICBpZiAoIW51bWJlclJlZy50ZXN0KHZhbHVlKSkge1xyXG4gICAgICAgIGNhbGxiYWNrKG5ldyBFcnJvcihcIuWPquiDveS4ujbkvY3mlbDlrZfvvIFcIikpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjcm1UeXBlOiBcIm0xMDBCaWxsXCIsXHJcbiAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiBbXHJcbiAgICAgICAgICB7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiBcIuW/hemhu+i+k+WFpe+8gVwiLCB0cmlnZ2VyOiBcImJsdXJcIiB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHZhbHVlU2VsZWN0OiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm9zOiBbXSxcclxuICAgICAgZGlhbG9nT3B0aW9uczogW10sXHJcbiAgICAgIHZlcnNpb25WYWx1ZTogXCJcIixcclxuICAgICAgc2VhcmNoQ29udGVudDogXCJcIiwgLy8g6L6T5YWl5YaF5a65XHJcbiAgICAgIHNob3dFeGNlbEltcG9ydDogZmFsc2UsXHJcbiAgICAgIGZvcm06IHt9LFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBsaXN0OiBudWxsLFxyXG4gICAgICB0b3RhbENvdW50OiAwLFxyXG4gICAgICBsaXN0TG9hZGluZzogdHJ1ZSxcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgYm9tSWQ6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIOmrmOe6p+aQnOe0olxyXG4gICAgICBmaWx0ZXJPYmo6IHtcclxuICAgICAgICB0eXBlOiBPYmplY3QsXHJcbiAgICAgICAgZGVmYXVsdDogKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RRdWVyeToge1xyXG4gICAgICAgIFNraXBDb3VudDogMCxcclxuICAgICAgICBNYXhSZXN1bHRDb3VudDogMTUsXHJcbiAgICAgICAgcHJvZHVjdFR5cGU6IDEsXHJcbiAgICAgICAgUHJvZHVjdExpbmU6IHVuZGVmaW5lZCxcclxuICAgICAgICB2ZXJzaW9uOnVuZGVmaW5lZCxcclxuICAgICAgICBIb3N0U05CZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgSG9zdFNORW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBLTlJCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgS05SRW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBWSU5CZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgVklORW5kOnVuZGVmaW5lZCxcclxuICAgICAgICBPbmxpbmVUaW1lVmFsdWU6dW5kZWZpbmVkLFxyXG4gICAgICAgIE9ubGluZVRpbWVCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgT25saW5lVGltZUVuZDp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVWYWx1ZTp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVCZWdpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgUmVjZWl2ZVRpbWVFbmQ6dW5kZWZpbmVkLFxyXG5cclxuICAgICAgfSxcclxuICAgICAgbGlzdEV4cG9ydFF1ZXJ5OiB7XHJcbiAgICAgICAgZXJwQXNzZW1ibHlDb2RlOiB1bmRlZmluZWQsXHJcbiAgICAgICAgZXJwQXNzZW1ibHlOYW1lOiB1bmRlZmluZWQsXHJcbiAgICAgIH0sXHJcbiAgICAgIGxpc3RQTFF1ZXJ5OntcclxuICAgICAgICBCaWxsVHlwZTogMixcclxuICAgICAgICAvL1VzZXJJZDogXCIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcclxuICAgICAgfSxcclxuICAgICAga25yUXVlcnk6eyBcclxuICAgICAgICBrbnI6IHVuZGVmaW5lZCxcclxuICAgICAgfSxcclxuICAgICAgZm9ybTpcclxuICAgICAge1xyXG4gICAgICAgIGxlZnRkZXRhaWxzOltdLFxyXG4gICAgICAgIHJpZ2h0ZGV0YWlsczpbXSxcclxuICAgICAgfSxcclxuICAgICAgc2F2ZWZvcm06e1xyXG4gICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGtucjp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICBob3N0U046dW5kZWZpbmVkLFxyXG4gICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICBiaWxsTTEwMFBhcnRzOltdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJwQXNzZW1ibHlMaXN0OlxyXG4gICAgICAgIFtcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgZXJwQXNzZW1ibHlDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgZXJwQXNzZW1ibHlOYW1lOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgdmVoaWNsZU1vZGVsOnVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgLy9pc0NvdmVyOiB0cnVlLFxyXG4gICAgICAgICAgLy8gICBkZXRhaWxzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAvLyAgICAgLy8ge1xyXG4gICAgICAgICAgLy8gICAgIC8vICAgcGFydENvZGU6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIC8vICAgICAvLyAgIHBhcnROdW06IDEsXHJcbiAgICAgICAgICAvLyAgICAgLy8gICBkZXNjcmlwdGlvbjogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgLy8gICAgIC8vICAgaXNLZXk6IGZhbHNlXHJcbiAgICAgICAgICAvLyAgICAgLy8gfVxyXG4gICAgICAgICAgLy8gfSxcclxuICAgICAgICBdXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gI3JlZ2lvblxyXG4gICAgICAgIC8qXHJcbiAgICAgICAgXHJcbiAgICAgICAgKi9cclxuICAgICAgIC8vICAjZW5kcmVnaW9uXHJcbiAgICAgIH0sXHJcbiAgICAgIHJpZ2h0QWxsZGV0YWlsczpbXSxcclxuICAgICAgcGFnZTogMSxcclxuICAgICAgLy8g5pi+56S65pCc57Si5p2h5Lu2XHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIGJvbVVuaXQsXHJcbiAgICAgIG11bHRpcGxlU2VsZWN0aW9uOiBbXSxcclxuICAgICAgbXVsdGlwTGVMZWZ0U2VsZWN0aW9uOltdLFxyXG4gICAgICBkcmF3ZXI6IGZhbHNlLFxyXG4gICAgICBkaWFsb2dGb3JtVmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIGZvcm1UaXRsZTogXCJcIixcclxuICAgICAgaXNFZGl0OiBmYWxzZSxcclxuICAgICAgZm9ybUxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDMzNSxcclxuICAgICAgZGV0YWlsVGFibGVIZWlnaHQ6MjUwLFxyXG4gICAgICAvL2RldGFpbHM6W10sIC8v5L+u5pS55a2Q6KGo5pWw5o2u5rqQXHJcbiAgICAgIFBMTGlzdDpbXSwvL+S6p+e6v+S4i+aLiVxyXG4gICAgICBQTENoaWxkTGlzdDpbXSwvL+etm+mAieWQjuS6p+e6v+S4i+aLiVxyXG4gICAgICB2ZWhpY2xlTW9kZWxRdWVyeTp7XHJcbiAgICAgICAgZGljVHlwZU5hbWU6XCLmtL7moLzovablnotcIixcclxuICAgICAgfSxcclxuICAgICAgdmVoaWNsZU1vZGVsTGlzdDpbXSwvL+i9puWei2xpc3RcclxuXHQgICAgcHJvZHVjdFR5cGVMaXN0Olt7aWQ6MSxuYW1lOifpl6jmnb8nfSx7aWQ6MixuYW1lOifmn7HmiqTmnb8nfV0sXHJcbiAgICAgIGdldHRpbWU6XCJcIixcclxuICAgICAgS05SbGlzdDpudWxsLFxyXG4gICAgfTtcclxuICB9LFxyXG4gIG1vdW50ZWQoKSB7XHJcbiAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7IFxyXG4gICAgICAgIHZhciBvZmZzZXRIZWkgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgIC8vY29uc29sZS5sb2cob2Zmc2V0SGVpKTtcclxuICAgICAgICBsZXQgYm94SCA9IHRoaXMuJHJlZnMuYm94Lm9mZnNldEhlaWdodDtcclxuICAgICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gb2Zmc2V0SGVpIC0gYm94SCAtIDU3IC0gNzk7Ly81N+S4umZvb3RlcumrmOW6pu+8jDc55Li66aG16Z2i5LiK6YOo5qCH562+6auY5bqmXHJcbiAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLiRyZWZzLmJveC5vZmZzZXRIZWlnaHQpO1xyXG4gICAgICAgIC8vY29uc29sZS5sb2codGhpcy50YWJsZUhlaWdodCk7XHJcbiAgICB9KTtcclxuICB9LFxyXG4gIGNyZWF0ZWQoKSB7XHJcbiAgICAvL3RoaXMuZ2V0S05STGlzdCgpO1xyXG4gICAgdGhpcy5nZXRQcm9kdWN0TGluZSgpO1xyXG4gICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIC8vY29uc29sZS5sb2codGhpcy51c2VySW5mbyk7XHJcbiAgfSxcclxuICBjb21wdXRlZDoge1xyXG4gICAgZ2V0RGVmYXVsdEZpZWxkKCkge1xyXG4gICAgICBcclxuICAgICAgdmFyIHRlbXBzVGFicyA9IFtdO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIua1geawtOWPt1wiLCBwcm9wOiBcInNlcmlhbE51bVwiLCB3aWR0aDogMTAwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7IGxhYmVsOiBcIuWkp+S8l+mhuuW6j+WPt1wiLCBwcm9wOiBcImhvc3RTTlwiLCB3aWR0aDogMTIwIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwiS05SXCIsXHJcbiAgICAgICAgcHJvcDogXCJrbnJcIixcclxuICAgICAgICB3aWR0aDogMTMwLFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAvLyAgIGxhYmVsOiBcIuW6leebmOWPt1wiLFxyXG4gICAgICAvLyAgIHByb3A6IFwidmluXCIsXHJcbiAgICAgIC8vICAgd2lkdGg6IDEzMCxcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLkuIrnur/ml7bpl7RcIixcclxuICAgICAgICBwcm9wOiBcIm9ubGluZVRpbWVcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIuaOpeaUtuaXtumXtFwiLFxyXG4gICAgICAgIHByb3A6IFwicmVjZWl2ZVRpbWVcIixcclxuICAgICAgICB3aWR0aDogMTgwLFxyXG4gICAgICB9KTtcclxuICAgICAgdGVtcHNUYWJzLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBcIui9puWei+S7o+eggVwiLFxyXG4gICAgICAgIHByb3A6IFwidmVoaWNsZU1vZGVsQ29kZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi54mI5pysXCIsXHJcbiAgICAgICAgcHJvcDogXCJ2ZXJzaW9uXCIsXHJcbiAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgfSk7XHJcbiAgICAgIHRlbXBzVGFicy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogXCLph4fpm4bngrlcIixcclxuICAgICAgICBwcm9wOiBcImNvbGxlY3Rpb25Qb2ludFwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5paH5Lu25ZCN56ewXCIsXHJcbiAgICAgICAgcHJvcDogXCJmaWxlTmFtZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICB0ZW1wc1RhYnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IFwi5Lqn57q/XCIsXHJcbiAgICAgICAgcHJvcDogXCJwcm9kdWN0TGluZVwiLFxyXG4gICAgICAgIHdpZHRoOiAxMjAsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGVtcHNUYWJzO1xyXG4gICAgfSxcclxuICAgIC4uLm1hcEdldHRlcnMoWyd1c2VySW5mbyddKS8v6I635Y+W5b2T5YmN55So5oi35L+h5oGvXHJcbiAgfSxcclxuICBtZXRob2RzOiB7XHJcbiAgICAvL+aKveWxiVxyXG4gICAgaGFuZGxlRHJhd2VyT3BlbihwYXJhbSkge1xyXG4gICAgICB0aGlzLmRyYXdlciA9IHRydWU7XHJcbiAgICAgIC8vY29uc29sZS5sb2cocGFyYW0pXHJcbiAgICAgIHZhciBwYXJlbnRJZCA9IHBhcmFtLmFzc2VtYmx5SUQ7IC8v5Li76ZSuaWRcclxuICAgICAgdGhpcy5jdXN0b21lckluZm9zID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmVudElkOiBwYXJlbnRJZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZURyYXdlckNsb3NlKGRvbmUpIHtcclxuICAgICAgZG9uZSgpO1xyXG4gICAgfSxcclxuICAgIGdldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgICAgIC8v6I635Y+W5b2T5YmN5pe26Ze05bm25omT5Y2wXHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBsZXQgeXkgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgbGV0IG1vbnRoID0gIG5ldyBEYXRlKCkuZ2V0TW9udGgoKSsxO1xyXG4gICAgICAgIGxldCBtbSA9IG1vbnRoPDEwID8gJzAnK21vbnRoIDogbW9udGg7XHJcbiAgICAgICAgbGV0IGRkID0gbmV3IERhdGUoKS5nZXREYXRlKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXREYXRlKCkgOiBuZXcgRGF0ZSgpLmdldERhdGUoKTtcclxuICAgICAgICBsZXQgaGggPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXRIb3VycygpIDogbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICAgIGxldCBtZiA9IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpPDEwID8gJzAnK25ldyBEYXRlKCkuZ2V0TWludXRlcygpIDogbmV3IERhdGUoKS5nZXRNaW51dGVzKCk7XHJcbiAgICAgICAgbGV0IHNzID0gbmV3IERhdGUoKS5nZXRTZWNvbmRzKCk8MTAgPyAnMCcrbmV3IERhdGUoKS5nZXRTZWNvbmRzKCkgOiBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKTtcclxuICAgICAgICBfdGhpcy5nZXR0aW1lID0geXkrJy0nK21tKyctJytkZCsnICcraGgrJzonK21mKyc6JytzcztcclxuICAgIH0sXHJcbiAgICBzYXZlKCkge1xyXG4gICAgICB0aGlzLiRyZWZzLmZvcm0udmFsaWRhdGUoKHZhbGlkKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLmhvc3RTTiA9IHRoaXMuZm9ybS5ob3N0U047XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLmtuciA9IHRoaXMuZm9ybS5rbnI7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLnZpbiA9IHRoaXMuZm9ybS52aW47XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLm9ubGluZVRpbWUgPSB0aGlzLmZvcm0ub25saW5lVGltZTtcclxuICAgICAgICAgIHRoaXMuc2F2ZWZvcm0ubTEwMEJpbGwudmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMuZm9ybS52ZWhpY2xlTW9kZWxDb2RlO1xyXG4gICAgICAgICAgdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gICAgICAgICAgdGhpcy5zYXZlZm9ybS5tMTAwQmlsbC5kZXNjcmlwdGlvbiA9IFwi5pegXCI7XHJcbiAgICAgICAgICB0aGlzLnNhdmVmb3JtLm0xMDBCaWxsLnJlY2VpdmVUaW1lID0gdGhpcy5nZXR0aW1lO1xyXG4gICAgICAgICAgLy/liKTmlq3mnIDlkI7kuIDmrKHlj7PkvqfmlbDmja5yaWdodGRldGFpbHPmmK/lkKblnKjlj7Pkvqflhajpg6jmlbDmja5yaWdodEFsbGRldGFpbHPkuK1cclxuICAgICAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgdmFyIHRsaXN0ID0gdGhpcy5yaWdodEFsbGRldGFpbHMuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlICYmIHUucGFydENvZGUgPT09IGVsZW1lbnQucGFydENvZGUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHUucGFydE5hbWUgPT09IGVsZW1lbnQucGFydE5hbWUgJiYgdS5wYXJ0TnVtID09PSBlbGVtZW50LnBhcnROdW0pO1xyXG4gICAgICAgICAgICBpZih0bGlzdC5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvL3RoaXMuc2F2ZWZvcm0uZXJwQXNzZW1ibHlMaXN0LmRldGFpbHMgPSB7fTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlvZPliY3lt6bkvqfmlbDmja5cIik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5sZWZ0ZGV0YWlscyk7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi5b2T5YmN5Y+z5L6n5pi+56S65pWw5o2uXCIpO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmZvcm0ucmlnaHRkZXRhaWxzKTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlvZPliY3lj7Pkvqflhajpg6jmlbDmja5cIik7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucmlnaHRBbGxkZXRhaWxzKTtcclxuXHJcbiAgICAgICAgICAvKirlt6blj7PlhbPogZTmi7zmjqXmnIDnu4hlcnBBc3NlbWJseUxpc3TmoLzlvI8gKi9cclxuICAgICAgICAgIHRoaXMuZm9ybS5sZWZ0ZGV0YWlscy5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgdmFyIHRlbXBsaXN0ID0gdGhpcy5yaWdodEFsbGRldGFpbHMuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICBvYmouZXJwQXNzZW1ibHlDb2RlID0gZWxlbWVudC5lcnBBc3NlbWJseUNvZGU7XHJcbiAgICAgICAgICAgIG9iai5lcnBBc3NlbWJseU5hbWUgPSBlbGVtZW50LmVycEFzc2VtYmx5TmFtZTtcclxuICAgICAgICAgICAgb2JqLnZlaGljbGVNb2RlbCA9IGVsZW1lbnQudmVoaWNsZU1vZGVsO1xyXG4gICAgICAgICAgICBvYmouZGV0YWlscyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgdGVtcGxpc3QuZm9yRWFjaChkZXRhaWwgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKGRldGFpbC5wYXJ0Q29kZSAhPT0gXCJcIiAmJiBkZXRhaWwucGFydENvZGUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBvYmouZGV0YWlscy5wdXNoKGRldGFpbCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zYXZlZm9ybS5lcnBBc3NlbWJseUxpc3QucHVzaChvYmopO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnNhdmVmb3JtKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi5L+d5a2Y5Y+C5pWwOlwiICsgSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlZm9ybSkpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICBpZiAodGhpcy5pc0VkaXQpIHtcclxuICAgICAgICAgICAgLy/kv67mlLlcclxuICAgICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgICAucHV0cyhcIi9hcGkvbmV3aml0L25ldy1tMTAwL1wiICsgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZCx0aGlzLnNhdmVmb3JtKVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pu05paw5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2F2ZWZvcm0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAga25yOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICB2aW46dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIGhvc3RTTjp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgYmlsbFN0YXR1czoyLFxyXG4gICAgICAgICAgICAgICAgICAgIGJpbGxNMTAwUGFydHM6W10sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIGVycEFzc2VtYmx5TGlzdDpbXSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vaW5zZXJ05re75YqgXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHRoaXMuc2F2ZWZvcm0pKTtcclxuICAgICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgICAucG9zdHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMFwiLCB0aGlzLnNhdmVmb3JtKVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5paw5aKe5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRMaXN0KCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlZm9ybSA9IHtcclxuICAgICAgICAgICAgICAgICAgbTEwMEJpbGw6XHJcbiAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBrbnI6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIHZlaGljbGVNb2RlbENvZGU6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgaG9zdFNOOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICBvbmxpbmVUaW1lOnVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICAgICAgICAgICAgYmlsbE0xMDBQYXJ0czpbXSxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgZXJwQXNzZW1ibHlMaXN0OltdLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSxcclxuICAgIC8qKiDmlrDlop4gKi9cclxuICAgIGhhbmRsZUNyZWF0ZSgpIHtcclxuICAgICAgdGhpcy5nZXRLTlJMaXN0KCk7XHJcbiAgICAgIGlmICh0aGlzLiRyZWZzW1wiZm9ybVwiXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy4kbmV4dFRpY2soKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kcmVmc1tcImZvcm1cIl0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5paw5aKeXCI7XHJcbiAgICAgIHRoaXMuaXNFZGl0ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHt9O1xyXG4gICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscyA9IFtdO1xyXG4gICAgICB0aGlzLnNhdmVmb3JtID0ge1xyXG4gICAgICAgIG0xMDBCaWxsOlxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGtucjp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2ZWhpY2xlTW9kZWxDb2RlOnVuZGVmaW5lZCxcclxuICAgICAgICAgIHZpbjp1bmRlZmluZWQsXHJcbiAgICAgICAgICBob3N0U046dW5kZWZpbmVkLFxyXG4gICAgICAgICAgb25saW5lVGltZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICBiaWxsU3RhdHVzOjIsXHJcbiAgICAgICAgICBiaWxsTTEwMFBhcnRzOltdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJwQXNzZW1ibHlMaXN0OltdLFxyXG4gICAgICB9O1xyXG4gICAgICAvL3RoaXMuZGV0YWlscyA9IFtdO1xyXG4gICAgICB0aGlzLmdldHZlaGljbGVNb2RlbCgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ0Zvcm1WaXNpYmxlID0gdHJ1ZTtcclxuICAgIH0sXHJcbiAgICAvKiog5L+u5pS5ICovXHJcbiAgICBoYW5kbGVVcGRhdGUocm93KSB7XHJcbiAgICAgIHRoaXMuZ2V0S05STGlzdCgpO1xyXG4gICAgICB0aGlzLmZvcm1UaXRsZSA9IFwi5L+u5pS5XCI7XHJcbiAgICAgIHRoaXMuaXNFZGl0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy5zYXZlZm9ybSA9IHtcclxuICAgICAgICBtMTAwQmlsbDpcclxuICAgICAgICB7XHJcbiAgICAgICAgICBrbnI6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgdmVoaWNsZU1vZGVsQ29kZTp1bmRlZmluZWQsXHJcbiAgICAgICAgICB2aW46dW5kZWZpbmVkLFxyXG4gICAgICAgICAgaG9zdFNOOnVuZGVmaW5lZCxcclxuICAgICAgICAgIG9ubGluZVRpbWU6dW5kZWZpbmVkLFxyXG4gICAgICAgICAgYmlsbFN0YXR1czoyLFxyXG4gICAgICAgICAgYmlsbE0xMDBQYXJ0czpbXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycEFzc2VtYmx5TGlzdDpbXSxcclxuICAgICAgfTtcclxuICAgICAgLy90aGlzLmRldGFpbHMgPSBbXTtcclxuICAgICAgdGhpcy5nZXR2ZWhpY2xlTW9kZWwoKTtcclxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZVNlbGVjdGlvbi5sZW5ndGggIT0gMSkge1xyXG4gICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwi57yW6L6R5b+F6aG76YCJ5oup5Y2V6KGMXCIsXHJcbiAgICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hEYXRhKHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0uaWQpO1xyXG4gICAgICAgICAgdGhpcy5kaWFsb2dGb3JtVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKiDliKDpmaQgKi9cclxuICAgIGhhbmRsZURlbGV0ZShyb3cpIHtcclxuICAgICAgaWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24ubGVuZ3RoICE9IDEpIHtcclxuICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIue8lui+keW/hemhu+mAieaLqeWNleihjFwiLFxyXG4gICAgICAgICAgICB0eXBlOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy4kYWxlcnQoXCLmmoLml7bkuI3mlK/mjIHmibnph4/liKDpmaRcIiwgXCLmj5DnpLpcIiwge1xyXG4gICAgICAgIC8vICAgY29uZmlybUJ1dHRvblRleHQ6IFwi56Gu5a6aXCIsXHJcbiAgICAgICAgLy8gICBjYWxsYmFjazogKGFjdGlvbikgPT4ge1xyXG4gICAgICAgIC8vICAgICAvL1xyXG4gICAgICAgIC8vICAgfSxcclxuICAgICAgICAvLyB9KTsgIFxyXG4gICAgICAgIHRoaXMuJGNvbmZpcm0oXCLmmK/lkKbliKDpmaTlupXnm5jlj7dcIiArIHRoaXMubXVsdGlwbGVTZWxlY3Rpb25bMF0udmluICsgXCLnmoTmlbDmja4/XCIsIFwi5o+Q56S6XCIsIHtcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIuehruWumlwiLFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogXCLlj5bmtohcIixcclxuICAgICAgICAgIHR5cGU6IFwid2FybmluZ1wiLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kYXhpb3NcclxuICAgICAgICAgICAgLmRlbGV0ZXMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9cIisgdGhpcy5tdWx0aXBsZVNlbGVjdGlvblswXS5pZClcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmxpc3QuaW5kZXhPZih0aGlzLm11bHRpcGxlU2VsZWN0aW9uWzBdKTtcclxuICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIuWIoOmZpOaIkOWKn1wiLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy4kbWVzc2FnZSh7XHJcbiAgICAgICAgICAgIHR5cGU6IFwiaW5mb1wiLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIuW3suWPlua2iOWIoOmZpFwiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgZmV0Y2hEYXRhKGlkKSB7XHJcbiAgICAgIC8v5b6q546v5Yqo5oCBXHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9cIiArIGlkKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0gPSByZXNwb25zZS5pdGVtLm0xMDBCaWxsO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gcmVzcG9uc2UuaXRlbS5lcnBBc3NlbWJseUxpc3Q7XHJcbiAgICAgICAgICByZXNwb25zZS5pdGVtLmVycEFzc2VtYmx5TGlzdC5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgZWxlbWVudC5kZXRhaWxzLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgaXRlbS5lcnBBc3NlbWJseUNvZGUgPSBlbGVtZW50LmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgIGlmKCBpID09PSAwIClcclxuICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnJpZ2h0QWxsZGV0YWlscyk7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvKiog5a+85Ye65Yqf6IO9ICovXHJcbiAgICBoYW5kbGVEb3dubG9hZCgpIHtcclxuICAgICAgdGhpcy5saXN0TG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMubGlzdEV4cG9ydFF1ZXJ5LmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubGlzdFF1ZXJ5LkVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgdGhpcy5saXN0RXhwb3J0UXVlcnkuZXJwQXNzZW1ibHlOYW1lID0gdGhpcy5saXN0UXVlcnkuRXJwQXNzZW1ibHlOYW1lO1xyXG4gICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh0aGlzLmxpc3RFeHBvcnRRdWVyeSkpO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5wb3N0cyhcIi9hcGkvbmV3aml0L25ldy1tMTAwL2V4cG9ydFwiLCB0aGlzLmxpc3RFeHBvcnRRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZmlsZW5hbWUgPSByZXMuaXRlbTtcclxuICAgICAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgICAgIC5Cb2xiR2V0cyhcIi9hcGkvbmV3aml0L2V4Y2x1ZGUtcGFydC1jZmcvZG93bmxvYWQvXCIgKyBmaWxlbmFtZSlcclxuICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGZpbGVuYW1lLmluZGV4T2YoXCJfXCIpICE9IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZG93bk5hbWUgPVxyXG4gICAgICAgICAgICAgICAgICBmaWxlbmFtZS5zbGljZSgwLCBmaWxlbmFtZS5sYXN0SW5kZXhPZihcIl9cIikpICtcclxuICAgICAgICAgICAgICAgICAgZmlsZW5hbWUuc2xpY2UoZmlsZW5hbWUubGFzdEluZGV4T2YoXCIuXCIpKTtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkRmlsZShyZXNwb25zZSwgZG93bk5hbWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHtcclxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5oiQ5YqfXCIsXHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwi5pWw5o2uLeWvvOWHuuaIkOWKn++8gVwiLFxyXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgICAgICAgZHVyYXRpb246IDIwMDAsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlKHJlc3BvbnNlLCBmaWxlbmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiRub3RpZnkoe1xyXG4gICAgICAgICAgICAgICAgICB0aXRsZTogXCLmiJDlip9cIixcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogXCLmlbDmja4t5a+85Ye65oiQ5Yqf77yBXCIsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICBkdXJhdGlvbjogMjAwMCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqL1xyXG4gICAgcmVzZXRRdWVyeShyZWZOYW1lKSB7XHJcbiAgICAgIHRoaXMuJHJlZnNbcmVmTmFtZV0ucmVzZXRGaWVsZHMoKTtcclxuICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZVZhbHVlID0gW107XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lVmFsdWUgPSBbXTtcclxuICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpO1xyXG4gICAgICB0aGlzLmdldFByb2R1Y3RMaW5lKCk7XHJcbiAgICB9LFxyXG4gICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqL1xyXG4gICAgaGFuZGxlUXVlcnkoKSB7XHJcbiAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9IDE7XHJcbiAgICAgIC8vdGhpcy5nZXRMaXN0KCk7XHJcbiAgICB9LFxyXG4gICAgc2VsZWN0VmFsdWUocGFyYW1zKSB7XHJcbiAgICAgIC8v54mI5pys5LiL5ouJ6YCJ5oupXHJcbiAgICAgIHRoaXMudmVyc2lvblZhbHVlID0gcGFyYW1zLnZhbHVlO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc2VsZWN0T3B0aW9uc0NoYW5nZShpdGVtKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGlzdCgpO1xyXG4gICAgfSxcclxuICAgIGltcG9ydEV4Y2VsRGF0YSgpIHtcclxuICAgICAgLy/lhbPpl63lr7zlhaXnqpfkvZPml7bosIPnlKhcclxuICAgICAgdGhpcy5zaG93RXhjZWxJbXBvcnQgPSBmYWxzZTtcclxuICAgICAgLy90aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqIOWIt+aWsOWIl+ihqCAqL1xyXG4gICAgaGFuZGxlSGFuZGxlKGRhdGEpIHtcclxuICAgICAgaWYgKGRhdGEudHlwZSAhPT0gXCJlZGl0XCIpIHtcclxuICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICAvKirlt6blop7liqAgKi9cclxuICAgIGhhbmRsZUFkZExlZnREZXRhaWxzKCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBpZiAodGhpcy5mb3JtLmxlZnRkZXRhaWxzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmZvcm0ubGVmdGRldGFpbHMgPSBbXTtcclxuICAgICAgICAvL2NvbnNvbGUubG9nKDY3OSk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG9iaiA9IHt9O1xyXG4gICAgICBvYmouZXJwQXNzZW1ibHlDb2RlID0gXCJcIjtcclxuICAgICAgb2JqLmVycEFzc2VtYmx5TmFtZSA9IFwiXCI7XHJcbiAgICAgIG9iai52ZWhpY2xlTW9kZWwgPSB0aGlzLmZvcm0udmVoaWNsZU1vZGVsQ29kZTtcclxuXHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5mb3JtLmxlZnRkZXRhaWxzKTtcclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2ODgpO1xyXG4gICAgfSxcclxuICAgIC8qKuWPs+WinuWKoCAqL1xyXG4gICAgaGFuZGxlQWRkUmlnaHREZXRhaWxzKCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBsZXQgb2JqID0ge307XHJcbiAgICAgIC8v5Yik5pat5piv5ZCm6YCJ5oup5LqG5bem5L6n55qE5pWw5o2uXHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24pO1xyXG4gICAgICBpZih0aGlzLm11bHRpcExlTGVmdFNlbGVjdGlvbi5sZW5ndGggIT09IDEpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLiRtZXNzYWdlKHtcclxuICAgICAgICAgICAgbWVzc2FnZTogXCLlv4XpobvpgInmi6nljZXooYzmgLvmiJBcIixcclxuICAgICAgICAgICAgdHlwZTogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIHtcclxuICAgICAgICAvLyBpZiAodGhpcy5mb3JtLnJpZ2h0ZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgLy8gICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW107XHJcbiAgICAgICAgLy8gICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubXVsdGlwTGVMZWZ0U2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgICAvLyAgIC8vY29uc29sZS5sb2coNjc5KTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgIH1cclxuICAgICAgb2JqLmVycEFzc2VtYmx5Q29kZSA9IHRoaXMubXVsdGlwTGVMZWZ0U2VsZWN0aW9uWzBdLmVycEFzc2VtYmx5Q29kZTtcclxuICAgICAgb2JqLnBhcnRDb2RlID0gXCJcIjtcclxuICAgICAgb2JqLmRlc2NyaXB0aW9uID0gXCJcIjtcclxuICAgICAgb2JqLnBhcnROdW09IDE7XHJcblxyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuZm9ybS5yaWdodGRldGFpbHMpO1xyXG4gICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2ODgpO1xyXG4gICAgfSxcclxuICAgIC8qKuW3puS+p+WIoOmZpCAqL1xyXG4gICAgaGFuZGxlTGVmdERlbGV0ZURldGFpbHMoaW5kZXgscm93KXtcclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMucmlnaHRBbGxkZXRhaWxzID0gdGhpcy4gcmlnaHRBbGxkZXRhaWxzLmZpbHRlcih1ID0+IHUuZXJwQXNzZW1ibHlDb2RlICE9PSByb3cuZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyg2OTMpO1xyXG4gICAgfSxcclxuICAgIC8qKuWPs+S+p+WIoOmZpCAqL1xyXG4gICAgaGFuZGxlUmlnaHREZWxldGVEZXRhaWxzKGluZGV4LHJvdyl7XHJcbiAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMuZm9yRWFjaCgoZWxlbWVudCxpKSA9PiB7XHJcbiAgICAgICAgaWYoZWxlbWVudCA9PT0gcm93KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2coXCLlj7PkvqfliKDpmaRcIik7XHJcbiAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMucmlnaHRBbGxkZXRhaWxzKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyAuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgIT09IHJvdy5lcnBBc3NlbWJseUNvZGUgJiYgdS5wYXJ0Q29kZSAhPT0gcm93LnBhcnRDb2RlIFxyXG4gICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHUucGFydE5hbWUgIT09IHJvdy5wYXJ0TmFtZSAmJiB1LnBhcnROdW0gIT09IHJvdy5wYXJ0TnVtKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgIC8vY29uc29sZS5sb2coNjkzKTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqIOagvOW8j+WMluWtl+autSAqL1xyXG4gICAgZmllbGRGb3JtYXR0ZXIocm93LCBjb2x1bW4pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJiaWxsU3RhdHVzXCIpIHtcclxuICAgICAgICByZXR1cm4geyAwOiBcIuacqueUn+aViFwiLCAyOiBcIuW3sueUn+aViFwiLCAzOiBcIuW3suWPkeW4g1wiIH1bcm93W2NvbHVtbi5wcm9wZXJ0eV1dO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChjb2x1bW4ucHJvcGVydHkgPT0gXCJvbmxpbmVUaW1lXCIgfHwgY29sdW1uLnByb3BlcnR5ID09IFwicmVjZWl2ZVRpbWVcIikge1xyXG4gICAgICAgIHZhciBkYXRlID0gcm93W2NvbHVtbi5wcm9wZXJ0eV07XHJcbiAgICAgICAgaWYgKGRhdGUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1vbWVudChkYXRlKS5mb3JtYXQoXCJZWVlZLU1NLUREIEhIOm1tOnNzXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiByb3dbY29sdW1uLnByb3BlcnR5XSB8fCBcIi0tXCI7XHJcbiAgICB9LFxyXG4gICAgcm9sZUZpbHRlcih0eXBlKSB7XHJcbiAgICAgIHJldHVybiBwcm9qZWN0VHlwZUtleVZhbHVlW3R5cGVdO1xyXG4gICAgfSxcclxuICAgIGdldExpc3QoZGF0YSkge1xyXG4gICAgICB0aGlzLmxpc3RMb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZGF0YSAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5Ta2lwQ291bnQgPSAodGhpcy5wYWdlIC0gMSkgKiBkYXRhLmxpbWl0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlNraXBDb3VudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIDE1O1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVWYWx1ZSE9PSB1bmRlZmluZWQpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lQmVnaW4gPSB0aGlzLmxpc3RRdWVyeS5PbmxpbmVUaW1lVmFsdWVbMF07XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkuT25saW5lVGltZUVuZCA9IHRoaXMubGlzdFF1ZXJ5Lk9ubGluZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlIT09IHVuZGVmaW5lZClcclxuICAgICAge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lQmVnaW4gPSB0aGlzLmxpc3RRdWVyeS5SZWNlaXZlVGltZVZhbHVlWzBdO1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LlJlY2VpdmVUaW1lRW5kID0gdGhpcy5saXN0UXVlcnkuUmVjZWl2ZVRpbWVWYWx1ZVsxXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvbmV3LW0xMDAvbGlzdFwiLCB0aGlzLmxpc3RRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdCA9IHJlc3BvbnNlLml0ZW1zO1xyXG4gICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UudG90YWxDb3VudDtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvL+Wkp+aVsOaNrumHj+WKoOi9veaXtlxyXG4gICAgICAgICAgICB0aGlzLmxpc3RMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubGlzdExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgZ2V0S05STGlzdCgpIHtcclxuICAgICAgdmFyIGxxID0ge307XHJcbiAgICAgIHZhciB0bGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgIC5nZXRzKFwiL2FwaS9uZXdqaXQvYmlsbC1yMTAwL2xpc3RcIiwgbHEpXHJcbiAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLktOUmxpc3QgPSByZXNwb25zZS5pdGVtcztcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwi6I635Y+WUjEwMOeahEtOUuS/oeaBr1wiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuS05SbGlzdCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiKTtcclxuICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBnZXRWTW9kZWwoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmZvcm0udmVoaWNsZU1vZGVsQ29kZSA9IHRoaXMuS05SbGlzdC5maWx0ZXIodSA9PiB1LmtuciA9PT0gdGhpcy5mb3JtLmtucilbMF0udmVoaWNsZU1vZGVsQ29kZTtcclxuICAgICAgdGhpcy5rbnJRdWVyeS5rbnIgPSB0aGlzLmZvcm0ua25yO1xyXG4gICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW107XHJcbiAgICAgIHRoaXMuJGF4aW9zXHJcbiAgICAgICAgLmdldHMoXCIvYXBpL25ld2ppdC9uZXctbTEwMC9nZXQtZXJwLWFzc2VtYmx5LWxpc3RcIiwgdGhpcy5rbnJRdWVyeSlcclxuICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gdHJ1ZSlcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5LTlJFQ2xpc3QgPSByZXNwb25zZS5pdGVtO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi6I635Y+WS05S55qE5oC75oiQ5L+h5oGvXCIpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHRoaXMuS05SRUNsaXN0KTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTtcclxuICAgICAgICAgICAgcmVzcG9uc2UuaXRlbS5mb3JFYWNoKChlbGVtZW50LGkpID0+IHtcclxuICAgICAgICAgICAgICBlbGVtZW50LmRldGFpbHMuZm9yRWFjaChkZXRhaWwgPT4ge1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsLmVycEFzc2VtYmx5Q29kZSA9IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEFsbGRldGFpbHMucHVzaChkZXRhaWwpO1xyXG4gICAgICAgICAgICAgICAgaWYoIGkgPT09IDAgKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLnB1c2goZGV0YWlsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5o6l5Y+j6L+U5Zue57uT5p6c5Li66ZSZ6K+vXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9LFxyXG4gICAgdk1jaGFuZ2UoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgfSxcclxuXHJcbiAgICB2YWx1ZXNlbGVjdENoYW5nZSgpe3RoaXMuJGZvcmNlVXBkYXRlKCk7fSxcclxuICAgIGhhbmRsZUltcG9ydFNBUCgpe30sXHJcblxyXG4gICAgaGFuZGxlRmlsdGVyKCkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgIH0sXHJcblxyXG4gICAgc29ydENoYW5nZShkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcCwgb3JkZXIgfSA9IGRhdGE7XHJcbiAgICAgIGlmICghcHJvcCB8fCAhb3JkZXIpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUZpbHRlcigpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5Tb3J0aW5nID0gcHJvcCArIFwiIFwiICsgb3JkZXI7XHJcbiAgICAgIHRoaXMuaGFuZGxlRmlsdGVyKCk7XHJcbiAgICB9LFxyXG4gICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkge1xyXG4gICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pO1xyXG4gICAgfSxcclxuICAgIGhhbmRsZUxlZnRTZWxlY3Rpb25DaGFuZ2UodmFsKVxyXG4gICAge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIuW3puaUueWPmFwiKTtcclxuICAgICAgLy8gY29uc29sZS5sb2codmFsKTtcclxuICAgICAgLy8gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24gPSBbXTtcclxuICAgICAgLy8gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24ucHVzaCh2YWwpO1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm11bHRpcExlTGVmdFNlbGVjdGlvbik7XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItnN0eWxlICovXHJcbiAgICBjZWxsU3R5bGUoeyByb3csIGNvbHVtbiwgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0pIHtcclxuICAgICAgaWYgKGNvbHVtbi5wcm9wZXJ0eSA9PT0gXCJxdHlcIikge1xyXG4gICAgICAgIHJldHVybiB7IHRleHRBbGlnbjogXCJyaWdodFwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiB9O1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgLyoqIOmAmui/h+Wbnuiwg+aOp+WItuihqOWktHN0eWxlICovXHJcbiAgICBoZWFkZXJSb3dTdHlsZSh7IHJvdywgY29sdW1uLCByb3dJbmRleCwgY29sdW1uSW5kZXggfSkge1xyXG4gICAgICBpZiAoY29sdW1uLnByb3BlcnR5ID09PSBcInF0eVwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcInJpZ2h0XCIsIGJhY2tncm91bmQ6IFwiI0ZBRkFGQVwiIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHsgdGV4dEFsaWduOiBcImxlZnRcIiwgYmFja2dyb3VuZDogXCIjRkFGQUZBXCIgfTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICAgIC8qKuS4u+ihqOeCueWHuyovXHJcbiAgICBoYW5kbGVSb3dDbGljayhyb3csIGNvbHVtbiwgZXZlbnQpIHtcclxuICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7XHJcbiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgIH0sXHJcbiAgICAvKirlt6bngrnlh7sqL1xyXG4gICAgaGFuZGxlTGVmdFJvd0NsaWNrKHJvdywgY29sdW1uLCBldmVudCkge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKFwi5bem54K55Ye7XCIpO1xyXG4gICAgICB0aGlzLiRyZWZzLkxlZnREZXRpYWxUYWJsZS5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLiRyZWZzLkxlZnREZXRpYWxUYWJsZS50b2dnbGVSb3dTZWxlY3Rpb24ocm93KTtcclxuICAgICAgdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24gPSBbXTtcclxuICAgICAgdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb24ucHVzaChyb3cpO1xyXG4gICAgICBpZih0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID09PSB1bmRlZmluZWQpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmZvcm0ucmlnaHRkZXRhaWxzID0gW11cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmZvcm0ucmlnaHRkZXRhaWxzLmxlbmd0aCA+IDApXHJcbiAgICAgIHtcclxuICAgICAgICB2YXIgdGVtcGxpc3QgPSB0aGlzLnJpZ2h0QWxsZGV0YWlscy5maWx0ZXIodSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5mb3JtLnJpZ2h0ZGV0YWlsc1swXS5lcnBBc3NlbWJseUNvZGUpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgIHZhciB0ZW1wID0gdGVtcGxpc3QuZmlsdGVyKHUgPT4gdS5lcnBBc3NlbWJseUNvZGUgPT09IGVsZW1lbnQuZXJwQXNzZW1ibHlDb2RlICYmIHUucGFydENvZGUgPT09IGVsZW1lbnQucGFydENvZGUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiB1LnBhcnROYW1lID09PSBlbGVtZW50LnBhcnROYW1lICYmIHUucGFydE51bSA9PT0gZWxlbWVudC5wYXJ0TnVtKTtcclxuICAgICAgICAgIGlmKHRlbXAubGVuZ3RoID49IDEpXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coXCLliKTlrprljIXlkKtcIik7XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGVtcGxpc3QpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwi5Yik5a6a5LiN5YyF5ZCrXCIpO1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKGVsZW1lbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnJpZ2h0QWxsZGV0YWlscy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAge1xyXG4gICAgICAgIHZhciB0ZW1wbGlzdCA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIC8vLmxvZyhcIuWPs+S+p+WFqOaVsOaNrlwiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnJpZ2h0QWxsZGV0YWlscyk7XHJcbiAgICAgIHRoaXMuZm9ybS5yaWdodGRldGFpbHMgPSB0aGlzLnJpZ2h0QWxsZGV0YWlscy5maWx0ZXIodSA9PiB1LmVycEFzc2VtYmx5Q29kZSA9PT0gdGhpcy5tdWx0aXBMZUxlZnRTZWxlY3Rpb25bMF0uZXJwQXNzZW1ibHlDb2RlKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyhcIuWPs+S+p+aVsOaNrlwiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmZvcm0ucmlnaHRkZXRhaWxzKTtcclxuICAgIH0sXHJcbiAgICAvL+iOt+WPluaJgOacieS6p+e6v1xyXG4gICAgZ2V0UHJvZHVjdExpbmUoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmxpc3RQTFF1ZXJ5LlVzZXJJZCA9IHRoaXMudXNlckluZm8udXNlcklkO1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgLmdldHMoXHJcbiAgICAgICAgICAgIFwiL2FwaS9uZXdqaXQvcHJvZHVjdC1saW5lL2xpc3RcIix0aGlzLmxpc3RQTFF1ZXJ5XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMuUExMaXN0ID0gcmVzcG9uc2UuaXRlbTtcclxuICAgICAgICAgICAgdGhpcy5QTENoaWxkTGlzdCA9IHRoaXMuUExMaXN0LmZpbHRlcih1ID0+IHUucHJvZHVjdFR5cGUgPT09IHBhcnNlSW50KHRoaXMubGlzdFF1ZXJ5LnByb2R1Y3RUeXBlKSkuc29ydCgoYSxiKT0+e3JldHVybiBhLnByb2R1Y3RMaW5lQ29kZS1iLnByb2R1Y3RMaW5lQ29kZX0pO1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IHRoaXMuUExDaGlsZExpc3RbMF0ucHJvZHVjdExpbmVDb2RlO1xyXG4gICAgICAgICAgICB0aGlzLmdldExpc3QoKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2codGhpcy5QTExpc3QpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICAvL+S6p+e6v+exu+Wei+WPmOabtFxyXG4gICAgcHR5cGVzZWxlY3RDaGFuZ2UoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmxpc3RRdWVyeS5wcm9kdWN0TGluZSA9IFwiXCI7XHJcbiAgICAgIC8vY29uc29sZS5sb2codGhpcy5saXN0UXVlcnkucHJvZHVjdFR5cGUpO1xyXG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuUExDaGlsZExpc3QpXHJcbiAgICAgIHRoaXMuUExDaGlsZExpc3QgPSB0aGlzLlBMTGlzdC5maWx0ZXIodSA9PiB1LnByb2R1Y3RUeXBlID09PSBwYXJzZUludCh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSkpLnNvcnQoKGEsYik9PntyZXR1cm4gYS5wcm9kdWN0TGluZUNvZGUtYi5wcm9kdWN0TGluZUNvZGV9KTtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMTGlzdClcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLmxpc3RRdWVyeS5wcm9kdWN0VHlwZSlcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLlBMQ2hpbGRMaXN0KVxyXG4gICAgfSxcclxuICAgIC8v6I635Y+W6L2m5Z6LXHJcbiAgICBnZXR2ZWhpY2xlTW9kZWwoKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRheGlvc1xyXG4gICAgICAgICAgLmdldHMoXHJcbiAgICAgICAgICAgIFwiL2FwaS9uZXdqaXQvZGljL2xpc3RcIix0aGlzLnZlaGljbGVNb2RlbFF1ZXJ5XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmVoaWNsZU1vZGVsTGlzdCA9IHJlc3BvbnNlLml0ZW07XHJcbiAgICAgICAgICAgIC8vY29uc29sZS5sb2coKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICB9KTtcclxuICAgIH0sXHJcbiAgICBsZWZ0Y2xpY2soKVxyXG4gICAge1xyXG4gICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpO1xyXG4gICAgICBsZXQgb2JqID0ge307XHJcbiAgICAgIG9iai5lcnBBc3NlbWJseUNvZGUgPSB0aGlzLmZvcm0uZXJwQXNzZW1ibHlDb2RlO1xyXG4gICAgICBvYmouZXJwQXNzZW1ibHlOYW1lID0gdGhpcy5mb3JtLmVycEFzc2VtYmx5TmFtZTtcclxuICAgICAgb2JqLnZlaGljbGVNb2RlbCA9IHRoaXMuZm9ybS52ZWhpY2xlTW9kZWxDb2RlO1xyXG4gICAgICBcclxuICAgICAgaWYgKHRoaXMuZm9ybS5sZWZ0ZGV0YWlscyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzID0gW107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmxlZnRkZXRhaWxzLnB1c2gob2JqKTtcclxuICAgIH0sXHJcbiAgICByaWdodGNsaWNrKCl7fSxcclxuICB9LFxyXG59O1xyXG48L3NjcmlwdD5cclxuXHJcblxyXG48c3R5bGUgbGFuZz1cInNjc3NcIiBzY29wZWQ+XHJcbkBpbXBvcnQgXCIuLi8uLi8uLi9wZy1maXMvc3R5bGVzL2NybXRhYmxlLnNjc3NcIjtcclxuXHJcbi8vIC8q6KGo5qC85YWo6YCJ5qGG5Y676Zmk56m65qGGKi9cclxuLy8gLmVsLXRhYmxlID4+PiAuRGlzYWJsZWRTZWxlY3Rpb24gLmNlbGwgLmVsLWNoZWNrYm94X19pbm5lciB7XHJcbi8vICAgZGlzcGxheTogbm9uZTtcclxuLy8gICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbi8vIH1cclxuLy8gLyrooajmoLzlhajpgInmoYbmlLnkuLrvvJrpgInmi6kqL1xyXG4vLyAuZWwtdGFibGUgPj4+IC5EaXNhYmxlZFNlbGVjdGlvbiAuY2VsbDpiZWZvcmUge1xyXG4vLyAgIGNvbnRlbnQ6IFwi5piv5ZCmS2V55Lu2XCI7XHJcbi8vICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4vLyAgIGxlZnQ6IDdweDtcclxuLy8gfVxyXG4uZGl2aWRlcjF7XHJcbiAgbWFyZ2luOiAwIDtcclxufVxyXG4uZGl2aWRlcjJ7XHJcbiAgbWFyZ2luOiAxMHB4O1xyXG4gIG1hcmdpbi1ib3R0b206IDIwcHggO1xyXG4gIHdpZHRoOiA5NSU7XHJcbn1cclxuPC9zdHlsZT5cclxuXHJcbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS0xMy0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jYWNoZS1sb2FkZXIvZGlzdC9janMuanM/P3JlZi0tMTMtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWU0NWExNTkyJnNjb3BlZD10cnVlJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWU0NWExNTkyJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiZTQ1YTE1OTJcIixcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///ceae\n')},d6fd:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2Jhc2VkYXRlL20xMDBCSWxsL2RldGFpbC52dWU/ZTYyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJkNmZkLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///d6fd\n")},de89:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0NEI2NDA2RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY0NEI2NDA3RTJGRDExRThBNEY3OUI3NjZGNjI3MDg5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjQ0QjY0MDRFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NjQ0QjY0MDVFMkZEMTFFOEE0Rjc5Qjc2NkY2MjcwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7tt85eAAABAklEQVR42mJ8Fv7/MAMDgw0DEeD/PwYGXrv/0x+v/1gA5P6CiTMRawAI/P39j4GZhzFTJpCvB8hlQzaEaPD3z38wzcLDlItsEEmGMADN+PH8H9wgKQ++hSCDGIFh8p9YM37/+Mfw7d0fhl/f/zKwsDExcPAxM/z49YWPhRSHsLAyMnAJsTBw/GFmYGBkYGBmYQQawvCTJEMYmRkZWIEYDfwiLUxwuRCZI9wADCUNTEW/bjAwvAXJaQHTSQiQ3YSQExQVQDUEZMDzCAhbcgWqONiSOiJcgq6ZWECVMGFC9zs28OsmhAaFxa9rWGKNlMSGK+ap751RQ+CGHKFA/1EQARBgAAQ6Q7F9u0awAAAAAElFTkSuQmCC"\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3ZpZGVvLnBuZz8yODQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlDQUFpQyIsImZpbGUiOiJkZTg5LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkVBQUFBVUNBWUFBQUJyb05aSkFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBeVpwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRReUlEYzVMakUyTURreU5Dd2dNakF4Tnk4d055OHhNeTB3TVRvd05qb3pPU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenA0YlhCTlRUMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMMjF0THlJZ2VHMXNibk02YzNSU1pXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2ZUdGd0x6RXVNQzl6Vkhsd1pTOVNaWE52ZFhKalpWSmxaaU1pSUhodGNEcERjbVZoZEc5eVZHOXZiRDBpUVdSdlltVWdVR2h2ZEc5emFHOXdJRU5ESURJd01UZ2dLRmRwYm1SdmQzTXBJaUI0YlhCTlRUcEpibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPalkwTkVJMk5EQTJSVEpHUkRFeFJUaEJORVkzT1VJM05qWkdOakkzTURnNUlpQjRiWEJOVFRwRWIyTjFiV1Z1ZEVsRVBTSjRiWEF1Wkdsa09qWTBORUkyTkRBM1JUSkdSREV4UlRoQk5FWTNPVUkzTmpaR05qSTNNRGc1SWo0Z1BIaHRjRTFOT2tSbGNtbDJaV1JHY205dElITjBVbVZtT21sdWMzUmhibU5sU1VROUluaHRjQzVwYVdRNk5qUTBRalkwTURSRk1rWkVNVEZGT0VFMFJqYzVRamMyTmtZMk1qY3dPRGtpSUhOMFVtVm1PbVJ2WTNWdFpXNTBTVVE5SW5odGNDNWthV1E2TmpRMFFqWTBNRFZGTWtaRU1URkZPRUUwUmpjNVFqYzJOa1kyTWpjd09Ea2lMejRnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrSUR3dmNtUm1PbEpFUmo0Z1BDOTRPbmh0Y0cxbGRHRStJRHcvZUhCaFkydGxkQ0JsYm1ROUluSWlQejd0dDg1ZUFBQUJBa2xFUVZSNDJtSjhGdjcvTUFNRGd3MERFZUQvUHdZR1hydi8weCt2LzFnQTVQNkNpVE1SYXdBSS9QMzlqNEdaaHpGVEpwQ3ZCOGhsUXphRWFQRDN6Mzh3emNMRGxJdHNFRW1HTUFETitQSDhIOXdnS1ErK2hTQ0RHSUZoOHA5WU0zNy8rTWZ3N2QwZmhsL2Yvekt3c0RFeGNQQXhNL3o0OVlXUGhSU0hzTEF5TW5BSnNUQncvR0ZtWUdCa1lHQm1ZUVFhd3ZDVEpFTVltUmtaV0lFWURmd2lMVXh3dVJDWkk5d0FEQ1VOVEVXL2JqQXd2QVhKYVFIVFNRaVEzWVNRRXhRVlFEVUVaTUR6Q0FoYmNnV3FPTmlTT2lKY2dxNlpXRUNWTUdGQzl6czI4T3NtaEFhRnhhOXJXR0tObE1TR0srYXA3NTFSUStDR0hLRkEvMUVRQVJCZ0FBUTZRN0Y5dTBhd0FBQUFBRWxGVGtTdVFtQ0NcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///de89\n')},e4fb:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a02d");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_SceneCreate_vue_vue_type_style_index_0_id_20aebb16_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvc2NlbmVGb3JtL1NjZW5lQ3JlYXRlLnZ1ZT9mZTEyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJlNGZiLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1NjZW5lQ3JlYXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTIwYWViYjE2Jmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZSZcIiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///e4fb\n')},e719:function(module,exports){eval('module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAUCAYAAABroNZJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZCNzhBMTA2RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZCNzhBMTA3RTJGRDExRThCOEIzQkI1RkZCN0IyRTczIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NkI3OEExMDRFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NkI3OEExMDVFMkZEMTFFOEI4QjNCQjVGRkI3QjJFNzMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4WOde6AAABZElEQVR42syUzUrDQBDH/5ukH4mCKaikUk9CqwcLHryIF08i4t0nEAQFwYMv4d2zPoVntUfvSR/ApuIHQltpoll3shGTNGBDPfiHzc7O7PwyOxvCjq74LYBNjKEg4GguBRfXrecTsfS+/cq4AJLncRhlHG5vVM7FshiHjC3fD8J5SleO46BcEM6Bx6cf0NZ65ZJAWh5IQWO4uffR732iXFZgVgr7wn2QC1IsKZibLcI0ORgT0IKC/juGuSCqyqAbKvRUvxM9Od0BTEPa0yXgbFcOskkUoz1pJSAvPaBuSbteBV4HcpAd+iy5J67awnwS4rjAcizBfpCjEYEp5nR+qcQWGxoRZEXMbTcJppjtjkK09HG8D2C1JugC775FbxJ2c1HG0sfJ/Niomr21ZNlO5LM72bc2AqGEqplMoCNZM9n9yIS0u8BgKPsRB4e+bjaEiV8Bx2RiCv5A/wtyN0F+ix5fAgwAuPps0oHKlIYAAAAASUVORK5CYII="\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvYXNzZXRzL2ltZy9maWxlX3dvcmQucG5nPzc0ZjAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDIiwiZmlsZSI6ImU3MTkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCRUFBQUFVQ0FZQUFBQnJvTlpKQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5WnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVFF5SURjNUxqRTJNRGt5TkN3Z01qQXhOeTh3Tnk4eE15MHdNVG93Tmpvek9TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTkRJREl3TVRnZ0tGZHBibVJ2ZDNNcElpQjRiWEJOVFRwSmJuTjBZVzVqWlVsRVBTSjRiWEF1YVdsa09qWkNOemhCTVRBMlJUSkdSREV4UlRoQ09FSXpRa0kxUmtaQ04wSXlSVGN6SWlCNGJYQk5UVHBFYjJOMWJXVnVkRWxFUFNKNGJYQXVaR2xrT2paQ056aEJNVEEzUlRKR1JERXhSVGhDT0VJelFrSTFSa1pDTjBJeVJUY3pJajRnUEhodGNFMU5Pa1JsY21sMlpXUkdjbTl0SUhOMFVtVm1PbWx1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2TmtJM09FRXhNRFJGTWtaRU1URkZPRUk0UWpOQ1FqVkdSa0kzUWpKRk56TWlJSE4wVW1WbU9tUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZOa0kzT0VFeE1EVkZNa1pFTVRGRk9FSTRRak5DUWpWR1JrSTNRakpGTnpNaUx6NGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lEdy9lSEJoWTJ0bGRDQmxibVE5SW5JaVB6NFdPZGU2QUFBQlpFbEVRVlI0MnN5VXpVckRRQkRILzV1a0g0bUNLYWlrVWs5Q3F3Y0xIcnlJRjA4aTR0MG5FQVFGd1lNdjRkMnpQb1ZudFVmdlNSL0FwdUlIUWx0cG9sbDNzaEdUTkdCRFBmaUh6YzdPN1B3eU94dkNqcTc0TFlCTmpLRWc0R2d1QlJmWHJlY1RzZlMrL2NxNEFKTG5jUmhsSEc1dlZNN0ZzaGlIakMzZkQ4SjVTbGVPNDZCY0VNNkJ4NmNmME5aNjVaSkFXaDVJUVdPNHVmZlI3MzJpWEZaZ1Zncjd3bjJRQzFJc0taaWJMY0kwT1JnVDBJS0MvanVHdVNDcXlxQWJLdlJVdnhNOU9kMEJURVBhMHlYZ2JGY09za2tVb3oxcEpTQXZQYUJ1U2J0ZUJWNEhjcEFkK2l5NUo2N2F3bndTNHJqQWNpekJmcENqRVlFcDVuUitxY1FXR3hvUlpFWE1iVGNKcHBqdGprSzA5SEc4RDJDMUp1Z0M3NzVGYnhKMmMxSEcwc2ZKL05pb21yMjFaTmxPNUxNNzJiYzJBcUdFcXBsTW9DTlpNOW45eUlTMHU4QmdLUHNSQjRlK2JqYUVpVjhCeDJSaUN2NUEvd3R5TjBGK2l4NWZBZ3dBdVBwczBvSEtsSVlBQUFBQVNVVk9SSzVDWUlJPVwiIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///e719\n')},ed49:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvZmlsdGVyRm9ybS9pbmRleC52dWU/ZmQyNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJlZDQ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///ed49\n")},f3c4:function(module,exports,__webpack_require__){eval("// extracted by mini-css-extract-plugin\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT83Y2E0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImYzYzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///f3c4\n")},fb51:function(module,__webpack_exports__,__webpack_require__){"use strict";eval('/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f3c4");\n/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_cli_service_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_CRMTableHead_vue_vue_type_style_index_0_id_a399b9bc_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* unused harmony reexport * */\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvdmlld3MvcGctZmlzL2NvbXBvbmVudHMvQ1JNVGFibGVIZWFkLnZ1ZT85Njk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQSIsImZpbGUiOiJmYjUxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvY2xpLXNlcnZpY2Uvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvbG9hZGVyLmpzPz9yZWYtLTktb25lT2YtMS0wIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTktb25lT2YtMS0xIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS9jbGktc2VydmljZS9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvc3JjL2luZGV4LmpzPz9yZWYtLTktb25lT2YtMS0yIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zYXNzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cmVmLS05LW9uZU9mLTEtMyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY2FjaGUtbG9hZGVyL2Rpc3QvY2pzLmpzPz9yZWYtLTEtMCEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0NSTVRhYmxlSGVhZC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1hMzk5YjliYyZsYW5nPXNjc3Mmc2NvcGVkPXRydWUmXCIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///fb51\n')}}]); \ No newline at end of file diff --git a/Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg b/Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg index de9c5ecd8334f45fd80db9b92ef9d682f6a06c4a..0047a29057cf9749a4baba8d217a28e21db5f225 100644 GIT binary patch delta 31751 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%0DFoY&7|htH{qalBJOlsNr5xP671*ylvk@30 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 delta 31605 zcmY(JRa6{J7p`N35CQ~(2l;>i!3jm#=RGg^IqoDAUY^Q_KyuwnZc;TL1UOmB_4qRjbT=&bunv z$>mh@r|3iCn$CTI-{;rZD3Ozpw$^LW+r0lY*Y9#(UR6XLfkb-Wsx8KOkNrgce0O8k zp|?kromo(=n}F^baWGo8ORSB+gMNm_B49T=)im6)^RO5He+paOjsjp$=@XAudrk@{ zO3AdbzF(lSLG6Qetmid@WnmT&g@{oF@z~B2q!h0@$3}+qnP73G$4Q`pQyO5XSk7|WZ(X1~80VN6H7jMuS&_@3h1bQmG zK>IHGC*j?6nUfHPcSA^+TIuVKuNTaftY7upi10{0wpzhA_w0rm-W$W34sTtS0FN#A z1IUoJ8yq>cXq;wedGI|f#SV=(pu4A}%|DQg=2Qpc{t~db3);VzVB8OY@!slj96aB^~|0<)S;j8KpJll4%zIxS1TnSh1M{gVwDYLlF*PH3J741q7RZBir zS8+Waw9(s6u~|t%lXO8FRjrcXvBz)H-j6&@0q;4zf%7s7SDW2dW%ykqy?Qu9#~`R3 ztYu>-bqb4(ObXF@omkMiXLj|tvf+ynYEB5Z^DF7k+Vdk%*ckW930*Ua2&RHdjMiu#qJYo&C3}MOY6Sk~hBEndb@gRJ9 z3{b`Cx7rbzZQ6!RRN2J83VmB-m5)s^ORyhoRumJ_W|#`YZrl<%z;3Z73&hVcpS6Tw`*H>^S8_2TSC9x?t#6?VL)tPAEl{(x@U2Jz-SlU23xT}0i09ae> z^3b3OH2n3$<4-g0S&zjA=cIvOP@ofuq-3;p|!Y342Z}x8j#$F_sWyvK{ zVZ3dTYnvIU_0Mey;@yNLG;E!dk_KtbuLW%JT@qc06JHc>C|)zIZP{JrN@T=NelP%6(_|=R*hR&d%^V&;GCgt*x}Ri-Gb{ znfi1ve4_{FNLP*TE0KXWD8iiEoa>{um=FICoh_bQ2arsfl-T-ljj$MfQUFleBOq&C zYB`;lb>92Hki{c}8S|4@$+i8Xf7DH1CRbeUToEb@i_WL1wt0R1t$RQY%g&t`*J>z# z&-XcCzg6!zMs}(*tN$qF7C!7qa7-V2%2cJlRkDtHSrq+c&i5epx?Dzts{)11x$3VD zVYzah)ye7d3;EReXJGuJo;?6JxnJz#gQCr=kKZ3O)zeX&UJ>~V$`ZCwYhN#HvoyOE zDJB^aLwVF`-Rz2dnnjbr?WV29*aFh+8n0f3M5+>`%@~9{fNftnzYWhgkdYkeNt!${ z(f+{dU&~_=-lpl^^V^W2Ux~`F8O9}f>5{fkt^XHlyQS61u;lVN zzg7GC%!WP|{H-{F?RoUIR zG%fozMxtX4moi5|wuYE!oim($#kze{V1+4A%6sJHC^D;&iJV6I7X<(#FXnar9jJ6SPLaufT<1YJ{XuNL!`V^o=K~A zE}?5G5XQY7T<*&W*S~fRU@0AJK0Yoh;%T5(u&Cudg?$Hap1=eLSa^pLpv^*76(stk z455WHLVD#R)nb)EK|)KyCg<|{%!t{RsR~Lb<(Pu)^6#;E{#XVVFH?lXam> zH#6@|!2>b@puyc5(0h9zndv3bD?$U@}B}@f=Skvmn-nG9OdKjv4 z3lXca4sz6U=n_4Nl0dS7y7-2cg=O!0`8_hP9C#6PF|itLCs0N1>mjg>`Rjb~I)0Ua zH|(!eQXGDq@nt@I_^tf-=o~cez#-fGxG)7U?qD|p@8(Nr|B}s^@W~bpb=mmVX;eMF zNakwJotb*}*s$cgaJC9fdbK-CBc!wU3GxfSAIiYWkNiHA1&Okk8kJ}2simH=P09?! z4c^KQ)W(l22viD|7!yqd|AA62P_l7E>R~4&mM*$!U^H+>8e*#_c2@?NOP`em2qbow z1&~MsYY@?5nj46yj`W(ksJ5D3HT9Ai+FOr>E-UPN4!s5fH4Gt&bd4AI@_B*6!JkJ( zBf+@PR#%oXVsGJmOFCo#oAhsW(WjTos(|N-gu2-4Pn|Io`Ms4^f{13*yoR)YlU7m} zjiD)E%7lFIVf;B9+0hVyg7~Jp@-x_zbzA}v3;x^GzH|J0T?+ky*1D;=H9NM)FgCmo zG1kYlV%xWEXziM>efPk?NU^mlStun}EeWbvEU6?eo^0pD$Hpz5V48xoJ0w;QQgT6m zR)Eb%+VO*{wLeVWVyLuXBvy}5T8@kQgY8Xz7J^NL2-xkbt<;o#S$mqL-{H0aiq?F= z&Wb~uNwMb|iOzkLi<7_3AHpV%!e|ze0ZyF9sbG^9fOEr+M|PC!$EYJ3i&J!>^_3MD z(LwzH@eEgV0)`wZX*}x1t>^w_OZt+3kv5hoHFl%YTSwm{*SjU3mc`CeC7_+hB$vXGB~`Pj@Mb2 zp_cK{x0o!zsNl=dnO<@IF8WidvYy_%0P~cWI{PYiNiTEM(Jus*+UssWWoy=A+p8Aq$(Ms9j0)DB}PP9g0~E> z-^Mo*ho8lmspsqzo8m|21lk8nOo{q|4NNGQ|#CyWuCpq*~cKJ+6-s730_mcN3sB`XZ@7#F1WU=n;C z<_=irW3r;pX6kQhl$~<^t$NeMiQ+RrmP?LgyWM8KFJeYX{9IZa##&d*YkToRCEW8s z-UQn>@pE|qr8KUFXxTcoNQ6^4YfIMQo3-vIl`4!YJwuln&lQg!$1dmuQNQD*J-$7@hHsyO z#x^f=hVD-`AWqHp_b)X8Xzifqu9b-9>gEf)lT-UU&E=()`K`e4xGX+jqP2_1&oLp~ zA+H~0*`x*g#_zp_G{~b-Po?7SJOIv9(C6!WqYbC-{=?D)@-$*cVZkGD*AKZ2^tTL~%{tooAE5bVB8-I4F zVvVULZ};U!7}qBldvEh%r@F;5i^%A zXUv>O8qLNmlwS&F^y{jh!~KHG-6&zO{4e8}{Uqujn}spk5X@Y$^16ZprnfAky@Uyn z+c0)H+MruCELLh7E_x+!H+O;VV6ay~nItEQCEr#k#J^D!bQ64@W*ix+ORHj?9NEG$ zdmeMPl;|^PWi!2`DFFr6_J=ionZVW+Toy33Z59DP|(K)V)Bj)Z}KBG`xHDxvf?cWp?yhc7W^sr8L zBMSi5v<5B=T7_LBi9ZGi8V#e^i7)1c#DDCqSQ+P~ORNh&%@7*v>RbHvT%3pv`toiK z*Unpi%iZK#P?=a~kUUnvN*%iB$!nY_>x6+_Vj-KdeWNLlj@-iG%z^S?E?PAX3LDHi zdbJAm$84jA=J;khAa90Ii@k>CGCabppR13vk9d=@f|!*Mk3(X6QTNAix@z@vdQMQi zLdAfhaj8m8%lrUj0IhJMNEg1wC2U5GZNu&b0h7rWx;VmR-c6dNDi?K=o2Z(U4g;Vz!~>EL{k4`MOJrMBtV%N7?mK zrNY~it(H6f1D~I643VX8jE(SBFAv2Y;m*foT05;|!b;{1lqv9UZ2}zJOJy~JMyg40 zN&~YDW^r&WkQJU$D+qfxvF#Fj%la6o5bA0dv|D5|nK0ogq&56swwq71&+CR(47vQ9 zBgqMJn|JFdcHB@0TQ&HOH&SvK85L0NB?@;Xl`lkj$^hD=nU``Qfe#X*JJ~xS4PWy= z^dfw~y0xFk{(}{UQfp!hYzr#;)ekeyzJPY4_a_3)x;FpoCA+*+teaTFM5S1x(D1KH z{$G{6!`7o4X1>hE>z3ohbAIZgMs)9U>9O;e(rSM(_loemL&~~FDerSFgNaL>mK$ca z-Q94x`XIBm~bs8sF0MyBdiATCnmFnbbxzc~KxQs#NQSuDms-?HP&0H(0qR@0L?L z3CFZuDIX6i#w5w~6a~hkgJ5Z~2(f*~`pY+u5TY%%iWQ8>Zy)<5n|0l-oivSN8#D?l zmwUC0CI$N6f;I595r%qhCQZwP{XilUR-w8`snK&ScC;W_Ik}2*Dziz0sUlvr3YtPA zJMYa&nhGOqV0oT+Yv3{T9b>^)7H92y=(G!7w#8_6OgQD;M;`_YU-c!LLKzvW zNLBnMGC0-zTWT?JaLF|?08FI#xL%Bw|3u5zqOY}>g%2X6FP@A&>6#DoqeY8esvf?6 z3}?Tx(HC6@f2G}b6_|Rj^V*31I`B{xVfwbz_kS(IENm;#B^BHHD!~VP?f*3dl!*!5 z|5}7KsRvi~SM_mFD}1ArW;=V#7%@yRZ(Xs%axc})O!>VRhjVD>pT;IN{H0_fAna8N2bGOZ`o=a^Nt+o>f zj~txYsraX}1!Q;~wvN76K`3zf*C$(;O81pfblHX!?CpPPS;%+tCl-^OCwdU7rGD3Z zC%sjqWY=D#4Z-1=doeb4!Uz+XT7doRHI@V>4dm| z#_gD`bj4%~Ke`c9jPWacEx``C;o)qdI}LMmKK+Y1B1L}rZj=9EL{d;t-y?TWBu)$J zk;`n*{aa<{Q=@PuPRKQ?TmMNn?ytXm&ewS*HX-k9ipW*~9-@^u?~YOJ0#?u8HzEDv zX+`d~cwPKV2Au7FuYT$M0GEGA7v~icXuqSB)9r`|H(DnsPiwW48 z^U1{1y;IgI9}nfED->--Cbx9^@+_%i`Z)x9b)OObnx}Zhq~O=E+no8{R4JaA)pn8_Z zCX|`(OYKEIHk<+64+Fn(q{#yb!^p_UL;|A^CogSjV?HIC>me*To1p#tIj?+@jwdDR zJ3o|p+n$=-e|Kf7F&NOrXSEPe-GY=~M`{|+XH6E9`=X;c+=*UvTN=z86EsaF&8Rk*vqtx^qA#9no$ zXzsmpesQkM|LNTUPJOk{GN*Iirtkq_$cV4s0j?drnA`i4!MIrySxJ?P6PD7W!`*G4&s>hJjhwYdOB{E8;s!M(!o ze|NiF(8v-jt2OGz2MHcvWRGtd1B;fbB0mx)0Mxs6eQZ;jnk!VeL;Iu+o7JCF=XzP= znCPoFlfPA)AFX(|GEhhS6s73`4g9=H4rRzD&fS$ZiQ)HI@#W57mqU*$bL1=_I*dAG zJ$bk2Eu5xzAZ)BQ!D{?oYi16TfOOb+S3H)h&U^Q*C$OXL;YW7bSrndI_X5q_w>oQ! zQGgQ5{8gsF;6{)g9MZpN?QIXUd`y$;J+n;Wf55o;ui|1iZYgu`z>GT>tN9^sL2R6P zFHu}T5nU8j2L6?i;5aTpyhEL^btVHW{g%$`sPxUjo{>CvBACC6ey2u7{^jSLBp$}W zFTt)dS9)dgzUKRzN#K|&2Lj#ZO@9)60$|!7CDowFG2y$FLI!QhE7|(4ehUs2!53G2 z;-5CrXjF-QgvB{s&bajNF>_QzKQ*MNLl-HpkTNb3+D#0Oxz;pl=A)-tq3X}FMMUEC zGyGhj)^h<{YlFLYUx)1DoN-KQ<9O&={(=jzzAUrFtZSAG?!S^JzmyI5jq>Xo6kvJF zi_h{VlDdFp6rjV`93ii`>~6qkDIZ={yVy;`oz&p&D)V1cv3WMRvVLJxuYl7e+}j?f z;N_s2X|DRb+u)HIBK(!>PPXEYUf* zk-5Ggu5GZ0o;-zTTg#HnLjoi03Ya&xv^QPg(r`<5Ft@DBs?#5ncB?^>oKOFp%KE-z z<6cU}t$W7(0_4e^cX0UtZ&D0oGNQIDr!N~Q5Y1N(OzM}M$JGvGT2T5K%&YVXMf`6J zPr*#VuLfDIriB8Okt5Spe}?<6@n#-(4EaIVOhCp1@L=s5 zgCr5K2qM9ZgYMm$R=n&v@^dn$u9U|8AvQ1(;kZ%{6apG!XOY#O8&{tye$I+ZY5BtV@*w}g!`G$yZP8y zoMK*U#`g|uNmO=jJnNe6fTU**9Z!xo}>sG(2Rh?qF+~UTTDH`xDD6d2;@uFTkfng z9@C6`y#I4v-+zCdkC>)|8R)4B;b1WGn0~`aiKc+xR(vXCC*8fR1Gc$!95Y_LHBI;Es@SouIe%PHQRTHy^~L_Ja9xFmR8VYr;zt91&bs4SAOqJ5rLEu zsUcNCt>(*=;_mWKvo8gQP;1{Rn5NdX-;#uibNba#w~fCg0-IMZD}p!3bxX-@s+j}1*1b(mx$kpQ9`r?jP745f5>deAKKIht%7?1YPr*NNfFa{K z8QDOrwsFSPpuJvZviA~*jD=K&_BAE%q+rlc9+`Ak3|6SaSX|6c^+;NFo=Q0{!SaClNZz$nQRx2FtrzT#i~{V;Fx zOXGX12Q7oh|7#%g_NRM^Vtlf5KAO`U=i86FKSVD1{L=icHO%2E2ESa^e4Xl!LtL~7 z-ax2thG~N4lC!a*O2Ruz^^-yEL=I#n5RFdpWLDMO>#z|i5@z*0VGs6(k{HgXj;uu>bkq!QrRI9bg6exDK^ za|N!`gmO2ZK;YT`wPHX(Xd_l5vs$I~8c|+i#>}v6N3) z!KL*ME)zo-*;YfrrKM|7vFO}u%a5|Mz!>K+^TaH2nAxb$V~1!^3?Xmg=4bhfi(DWr z1Ji_k_~Nzr?>FJLO_b-a(})aIiVxk*CM?cq_|f{5x=I(Lx7=OPX2m;87ZtZ(9?;Fo z77b*Cn_?lNXHG2 z&cMTbZ@~dwITe{QFYYrrXF~|O{MhF-nKIkwH%a=P@BW5q#KMeR==QtYH6Y4czPd$C z5Gi_VnpXp0cm0Y8=nUnoeGlaOS!a{*0oE76H^NNhvy zA#2YVLwqE|75MkEPmK3WzgjGaN{sE4?8r_mSdjK72|MjNns$mHb9WlAGY)(1^SGBo zFSQ3vX7&jALKAkqoSvoWDy@aw_L6%1@?)b(6yL>7clizUMB;fMAmZ8Gx4JHF^}z{2 zYZ9H`zkdlK|1_`?&@l4#jeFX!N6sVbAN8bP_zHi>I`xmhOy*w(n6QoTw~x-J^lJm3 zdPlNY-4j8JnpYeaQPG>uwZS+$7G}wNnHtgHV(It1GkU*) zkhMk4HoawlykoE)B}VfdjKJhzg8bLsL`{6kp-0!8TcATo$pylF5X@3BVbG5}X1XIM zwfP9){^n8BC46wcEMImaY%73{$C@xU5czYR&)>|grga8U@h4JsJI=lA#0%@06^b_6 zo$rXa@h9ZP(MZ#^d6a0bEe#Aa^g4*Yy+g1aH1PpYdmMW4(JR_(qS?1uzL~e#qj{6^ zRfSsdA9hNWkKca_GZ4yJqor=C>s9Bo-m`c1XSRj-NXZ;h#LiKoJf-w`R_a@Ei-fI#wjlHB96AUcD13Yt?C|A=Mr?M-qe=%2)gTNYSTFe)oZfbcL7gD zB)~tvykMVxr5K(hLu&6?hN*0^|HxVLYwEj7hnsy#6{v5geB}*ygMtFK-pr%#TD8Xh zPM17AKV`}B?~1#0@jH^U@p8=%Hu38{*ik)hxTMtVqwlFt-2epXI`qN?GAlxoZ5wgc zK$Oa2gC@xWR;{}bpScJ}*=H$c+(2)y0JbYl$_QZL5D`9|_Zu_Bec^@*X)yui&*h8m z0G5?0@hcZWLH4apGYAeN6!M5Zbv4fz;->pK5!_BS-_ zZ^q8hN&#I}iQ%>4{CnaAW3wt?{Te1>>NPoN0QciE+n=p(Z2XJRg65WTMLBLJ2mk>^ z7oj;Ju)13P&n!O*-6gRAS=VINHLCtaO4OD79Bjhpy8MIlh+d2m*seeC2c z`VOpX)E6?RR2qRSL^whQ$@Fm+(vj?TD<(J#u~tS6EVlVpYzfqO7C`7BPr+NWB$#4e zaT;%?Y_$bF)0_BNmix+^oRK17MW{qg8@Ep-)Pf4izD)~nh(3+C;=;pEm<^?qz1O z-+9-d=^F}mh|A45Aa5N3frhVdwzK47K<37l$d@DtO!mp|rPS*($5XRtYRP6RBEb_A z$I|w}leUH8?Ir1M!i=iJBD2A2#pyEeKtpzZ@}Dz5N<^UHSK{&{P&dR-RqzEN(;4@| z2K`2z?G2>rzS{zh(5Y(RGx-T)ARV`;do3L-7@BODV{`==SKwzMbxw9yR27EUDwd>u zWb~LS`uq31h5A-xbNLn=VM{z;QzY%1%G@sr3r*53KlWM_=809s*v%1fs8nI}m<0;@ zeP8!>}qB5yJ)uQ9b`5g>7O}d zY!N*<3MgI@?ryz>pG$>iIoLN$3T%4pZX3bxo9`#b_#tkQw<+JT%q*}jLD8w>vmx=J z#};SFlQLnvX~-%27=teJ+)D%v$OyF0RAGE7dlqA<(LeGix&*bL7JvM34>20rcx`)8 zWo$dT#dE{U@dFBS zez!TS2484j1;vGp&3rBt&KQW9*f*y)W6)UdPW))C)6beTMhEtx3i~&@imoN=`wjsge$Ei=Drx?*RlL+N*v`pIF4n3)KNvAZTKm5_kSbe37{~EK|co zwbGNzoa4ou>OND$*A%f+qw9LJu@PHSqZj|MKrvF1g({q>BQE>P`DqybGClM&)uPbm z8YB1zr&?y)SLPWy2paL`bA#VWvkAlXkh&12lH6amZk?9t0OEgU-nMR%TS2~tAB$8; z-je(|DF%=mhJ7EY02omeX3=e#C%TmNN)L*NdvHD78ug^IWWrtAq=&lb_?0J z_nU+SfuU998+bJ-gHy9CM3-GlKjKW8=uh<~xuE;j9UqRXhPmJ!ssaPES`ZC|3*kFB zLIk=A#5VNIuC6<-TV)xyAyoSY^w(QX!dI=boRAkv*PBHSzG{mysEDC5&E2_eZaBuO zOSO+CUQVSTb=X0=8r(gyysJ7o3Zc@bO6{az1&=w!>(lyOf}B$TGmOm2q?Xm?NkT=& zE(x6!Lnmo+yG9l`WT54)2N`sb=m|TlfqbAeJWFuwjup6M(g zZSTBwb6*taR+-*C6{v-`7We6x7zYeB4eKxzQ5An%khM}#6Ho4P5OgQRu|jpn|A!Aa zhtF>)J}thq|7`FMOF=Z7^iW7L53$NGY8vBM@Bg`K^x%>e&;QIVzCh$=|Icg$-~lp) zWv6UXaUe$rPq7mkxW6cxE&AMS9~&4X3}AvUE4X5 zw{M)i5AqPN zVqaq*7_JyY-?+-3kw{}5Uz4P;4X4IznqGf%Q%TJo6M;2;GxocJc@1LpoPuk)+Bbvk zjU`fn>|2qOI|hDyoI~na(kHm`ep>81bCjr$+g^=uE*U1EIM&X%2VU;GILCO9nhdoS zt`(JU-g5>O|Km#B4ZvD+g)Bro zBwLMzER;PQTLrxZvT@Q-IrD$Pzf(89F;f80H0siZcy(SQ7hnSAoa!h#DE}a@faJw8 zZIB6kOmu|~OhMJ}1bU}tRVQo^;gZM;`E#<>j|HQ%9qPI5fCv%-0zFj_G$r8>IJmw2 z@bJB&5UwtNCi_)gW8$l&4-cQ5+F_XX)SLF;1jcgHTxQ~c}SFN8{mvdD-X$g z?G|#l)f?fwG%`SO+?eHtSbxY1Jzg5|f!tE>z$TyOewxM?cd4mkvz#!LEB=O@O|65% zi!nDy^liaCLKVt}g}NmL@8Kg!KSag}s_uXBNY_DJ$SITDe+v`J;R;ZlY@(BdW;q+) zC*dGfl+_cDsIs9JKMhd;s5_D?di7ou4AE#m_Q;fk!~cTD(oFLvxsJ4Uhd3M~lmlDP znueu)_UMUrSY~ZOIz2=?*zkoeRTn>32$a@3N#tG`Dpfs@u{b&_SUr$0Fg|-Zzo7(R z1uiQHzRF^-%@>(fI7rayWuG2jOPztcn!pq0=IOyu^y-1EasWYd*-thh3$-00$>>E? zM$J)<{|8TLwTLvk(gnpya5|KxNc~BKy8LCBkl@sTid@rkDR924+#D)|pw69cD(}9Y zJ0-{-BsL$?`CV&L$`6d}6trC2feSw(x$1QlghOhd_EgYwDjcmOQp*b1KMkp!dsmXQ z)JYe)YC*@GfvP}dx2H=iirib2@*nb#PpN2)s&;kd-$OtQ4ZcVpienhPYXIp`t}A9) z*Rmp!$ljMLrN#Fk?Rt8$pIyPKFOf7(3TS5WlWQ{cLZK706xu9-J3R1?qgiRC3jb+n zX>I}e&yto@v!3^E7&Q4C6c@xl6rg_7P*!yd!k;BTivjXGG|29|ys8P)KQjg0w?CMY zS}+gwx;pX0PYCLi{&a!~}V z<;QeQS48CwzB`U8VHW62-G(`YR_=B4QVZxCGJ{ZdTkajUheuTnZ6nFYCna3qzVBcv2nViuF- za&m;`2+KJ39Va(1E9~eL(S2s`=PS+P6Z+mBen7jQkP?CqXcXUZ9(@N^`<5gK^N7v* zj|a{UzUL_nLHB3!(s2Cp+98V2fFN0tf<(lHk&@+#HBtkL-q404o?rbpXDCW28mH@3 zmj`4#q}}G}YvJ-w`?1h|OI~L?n$SMxVQqV$kcG+kbzrpjY>oUBjSQyQkaHC^8NoPZ zrsF3W3^T<{M_L&yGdf_Niz*K#Q~P@|5zgUi`;6Z4#;=Z~k2r^Y?JkZ@d1)VH-w>tc zZU*X6ef?6j|0kmC^36#5$tOBK9hZr(5K z%5^$={-Oc$NfrD_#~*5QTcwrxdKPwVvoaV^=v%19$4N&OwYh9PizyUN0w~tExx&nH z+?0Z^$VsJ?Y#C(?stj-=XX!7bilSm2Lx*jsrBp#wWoYewMbvz1ZowvEgN1a^q9hEl zno`h6Y}%#q2QvgftTHL6hL%5(JLG>1|HsR)f4mi+ImXY|`5*s`IM#R2LlLA_WwlNr zPjq$uA8r3fkADmzhIVNb;dIU(;}@=!Io4Abm=%#)1zp}`EkIe_bC#M&KX$CoHoI~LEh=zY){|Q0CkiZvRViul|KkGB zKk~CJhE1hAhF7g}=F!ql9}|z;eb{rx*oi@NtbcvJ_zI-$Bbj8<1(oCduFm69319e@x7oJyyxP&HYF5T*&dCrGtExS0e|B zMrJJ8LwbE~IWw^XJAX|p4J+sc7c0$GVut(gE5I0niw9GgG~eccZ!>51_Q8o{qmu6u+nu=^w+Pd9{2QKtt`^JQlM;~Px;jb9$E z@0bIF743Pr0p`JUb!8hH%*6JsKU^DHX9kbeJly;%1h*I?KdC~fLdpz|FC<+|3I_rJ z+Pk{tB@98b%HLa*8XoNenz4OFg>J2;F9y zZ=5}^#e~>Xm^xwMFrGY-kGPFcX0MA=`%`_~BIPL@Zo&oyTpN^Sp*mjo;fArN!+>TLjSA%u^+aW8jiiW%bmwnwm01QZsqygb7QVwIZ0UZ+9kN5OhL^^9PUR0y z$8Gi>r5`hX@Q5AFhW*FV^z#~TsN|DJ_6b9@PTa|^q{sQ+sq?$uRn_NBLDv&$Ix%;y zp3(WdpMY?Q3+x^N${Bxx$Bq+*RGsg4lIyB8P0Z_4F?Ty{CA-%#{!50->krxohwBgb zpA&U#`onUBW6{-_|4u!NMLlxkB^@d;@#v68>5I7|?!NgpdF?5ujGJrlqQDdlW2I84 zA8X^Hd89J1u~=YKwO%(uyWUiLLqxy(L6D6`Q~oBSQUNfNo+X-{RJ=y(JkCZeTa{9ye9yeXlbUMQ z^nuw$*Sy{!j@Rg%XWNMVQWa8T*w18a$!ph_pfNaayFr`)H7Jg(5&I{876;bQY$O8l z(4Uqlb`0?vE%R?TR9L6_HQDV3`Z?L31iBqlKazE-^+~|(W50&#EJ3eA#D@xTgYIWpc_ng;Pr>? z2sbYY|M{1UV)OQAy~-;Vz9N|f1@5LO1)3HTx5E2>s>U9&wR1D51q&Rz!YBOI$w0&U z^)mE=vB#U;xT^}{qs?ske_XkY{K}$V7@l{EQp*beP&!d+7o|@7E4_&gXjz&&Xr{U_ ztzPY*5~5JV9F&r5;jvYWK7juFa(PgIIeig?jAp zFeC+rK3HLPp(8-Kw5xr*`C);Qsm<|uYl^K?ruJfGt5OcIk!M}IXErWK{oGaW(Z~>X zhECAr&isR>i?@DZRt4b7G^eTV9=ZC?mBA_e_^VlYv<%sur#@{%>dEI@t6o^|Nb$xW zzD?()GKzi9E}B86Q5O{Bn7{Lxnm%vG@f{#CMC@#eabL-bi|w^{2%{OCtBal9!Y*x9u2&~T;dCll=PL}TIRsT@Ie=8>R%Zuo za%&ERIS+)38g~9XZPaMn;mQB#r7oW8>2?khxBo1=v1{A39NLW4d>4Ie+*Nr7)dJ=7 zQ3V_Gu^i!s+p}y|M&qmOS<`JILd2^bGSW1ZwI`XU+`}4tw5<(4x~P|wKgt$h+CeSF zLNwU+wqxZb<_CalY0La+-vh@k_&OGQ6U9DVCk1$;*CljafUc|)lUi12U+x5VTrA|~ z?Xvzd`Ab2RLMQIE1<6#dIe5;qb<>LfE7zXH4kzmgV#bnMHfdkwR+nzbbYJBpdGcR* zz;B4u`85=s@~x{T=!kDpDxi_{&hdza&cz7WrCuxb>2GXpLV5VYZp=#Vef^G1fZa}P zS4!xt`hud+z1u7;YO@p5lQ(^h?u!^%hkxnga7Y+!r?#+VIK}4B@C{MIk^_zh`IUR= zd@fPh3~G|k5%3-xD-#nHd&;!?)C^VE*Ld zGBtxF8+DVF7dBiL0*V`_KWxuydSrKP!f1dB+S&JMBb_3=>h!bLn2d6V9|e^c*J_63 zd9F$Z&9mq(9Azsh7`R3vHp@o;GEGgVo(uGyaLCqD3?2OWctY}{mO}RNN%Tt=+vG`t z*N6>W(6D{Cl;7M6PZP8@4o4V!zQq7sUgy1U=q357zF%GGYAcFdjV&j_UhgjL|5Bo> z*Z%&BC~!;UoeREk0L4)IyDw`*i4;e??Gd#4e$8_dYpgiDKSYr5>hoT~> zR|#)!w@cG7Z(T~$R-Qs~ie0}>deZ)Cr|(>}jmdrvh%C`zZi71HV=txJUjS!Xp4#Zc zP%jGEeMZmw7t`F$InTK;N=-dCUn6=wKmz4>TyVd=i5VHyw3{& zw|$qq#e0C!8bri#Bh+uNHfb0dO(9#M_5Av+NUG`F3zuLD*-8ul`h|$ixdU%l9EEJn zK5IBgB-O#~-HE;*-?7TZ9zaBT=uTR38l{)HXB+5uH-EsS@7fc(h!wgr%@||ZeX3m} zX1mwcf3}YIRI<~p=|p;QC$JE0*|-~-FIP+poPG7w_VweVa(H&}WI)O$-DA4A{P_FBB}2{K8>4Nh~bFMwzn8A0(&Tn6ygB*J4SeDfkW?3OvMn? zoN6dE)ULNCD@|Xam$8y4#TG~ZdU+^Bv|ZA^`_y0?lUIE0YiSfI8>j{|A;q@qF3&&H zmNd$uSY*R8NJK1gH^R8jmh>c9y=Il<&|e-IwoSbx8fw?Q_2k@};t^l+D$o3bsYpW2 zh~@Q2aU|GI0qmB}ADfRiZ$)C}_lus9u0(7O`SBQZ$cPsOV&;#&_vcIDYNwDbp#HkH zT_x%dBl|i;VcfqRz_vg!q3!t@{k`FHv9f2^EY{uFn7m>5Jd>W0 z#XsbDDhw~DB#L-!Yj1HdG}%s@L;9t!T5%$$OpL4viR zBT%?VSfp)NlKdq*)df_Kyk+XKsa^Dl^GL6g$F@^UjuOn4Bgd%!m73K^{;fW|VY-;b;(XZv_N-cQ>PQ|!>gMLUt3R(02DeNnt;)vOH3lwN^ zDDJL{TX8Gy?!{eN+!@^6rN!Od-Cc_nEAH<8Z$G);_uq5Rxw|KsB=cG_d6L~pW?pQd z2OHTiBF{KNj>0HHfn~rPd{AZqPbEe&ih)Y7s+3L&iAu2SDbJ_SsBPo{?(IP{zh~&s)pFnvF4Z4?S z?gLs#UTYDC0osKaS`6IHY;?kr4TBFUxJ+c-5rLCiUGlI3@Xx&GP9gOl$`Q?Ngsteb z7W^!rYEj3UtJVWn7=&!qi5uz9ry!odjfQyZ(*62%Q2-%*P=EGg`d)Y2`(1XXGv5ak z8LX7aKYQ@^518e!Q;(mtkaOmC(07Fk@%56q`wM1ifKsc*E40wfHl^Jmx1VFNS7HN= zKbDOMt~;*AHT?M<)+WaI_kM1!yH$=wT|o?F{;2Ur;wFl{IdfN<@3d+hi(!Sc0*eE+Ed^fIxk8Qbx1ikmz@2Ib$<87NC6HX5 z#GzoI1@IZEYVmBP)Rjlf&NvS@BF$t3y%k#UZ`pQ;^W)bhKVVqo1*ls>>G7BeO_)B^ z)Zq@*gTBd^nzaeo@TVYp0*_L^zjpYWARj`yQ_A9y(uo)cLm=zdbpH~r2-HDtCbZ|- zb{^6u`4-p)f5|YUd)|OG_LXT{umS0dndwBIyUQB77GsQIsFnCEunnumo~%WCTjFl#T2%|+ zNU>&mNwLdY@GFL9jY`eCwmTh1m#Bo*L-uBVZ1A^$bs&7S{mXr#@9et-y$fwhS$GCr zi#3)!29i=IG~N+X%NQ-@;~Vu?h2_Wd6xgkluY}Np@4$Tiyh|ig300f2(>S|KoH=;u zazGIC&1@-s`r`w1QY}k|F@6vA7LfB{gN%%!5CbE5s6yj zg?C3jHeE>iR8{czG{-bj+aP_!Dx^i2<9E)GnJ~@}0?Z{oPPiFdDGd zP|ojoe094Rw-^eGWG)Q=j0c9ou`$rliw47JnJ;hD4s)tg%(4$bmmG0F8R=gZu-$3p zAI+iXA(nmiD0JkUQX5$_VkJYX-p~K1rV@Mx$Yl_JNx+=?STS+>|2u1d{8w|UPXcKX zn_*$#k8)HV`faVqMZkh&!KzOVzFC*dS!+m}-Ec3sO`6Qvd&mQvJPVXzBP9ZNs#s(& z?dMscir^KbW`avKaEEpgUdu9^g7Zeo^+8?C-T6Mvfv z!6!bO`5S>#Gbp-b_C8?ET!R0C2DmE&kwXxdYLTDUg}{BD5!~l#2vFHc8Mdt>i+I60 zH9p21v6I3Mo#4hoZI}Ozbit@tgV!`6c8AFknV1jRkFjDW<=%FW3_$|dAxC7b1hw{^ zTe8^pJ2yt-#87+|Fpo7@iG4Y^sQD|{f|Uxe1z<98l#dF4V|dLQF{JkY7u_Hv7>+Jr z)0*Kgzk-d?4Ef6o){0NOVA;nV@Gr0h({VOyox_7vrPYf3}F?C$QQa z%D-y)|I+a{4}BrK^aVHYgJ8uR_1Mr#<-uy5JJXH+Z?OJTpEgx87GLni1xM;+EC=EE zY^0xt0I>Fte;bhZLoL;764WWmM5{ZT*OULiq8Sg0(e#a+6x7a zLIrTHP+&aKHcU?>APxORtZEOM22>do7{IiR)1AsKv^y1rHpJL}$CVUSXz)6UqfBK( ziC%xu&XtFg;Hlxm>Q`N@fmP)j?-7aoLp_qM*YMPM<=QS|-(mw(ZA(P(-0C#u8LI_b zFku|zMQi8#R|zop!4%@36$i_esQ)*p|6(|(_umHi>I&jQ{JVDGq0WN*-;MKW5js!t zznR4T7ZcQfGlBk_$?l&_fXzRKi-Esf$M0s|Ye3dg<}g;lYdDnYw_B=Wm4F7FqE4dZ z@y90!CcGxF7laoOD_nH+T6j;_PEk+eSB_TITfaGF?x&s|T<3`+L~EehiS(tTqHCgX zakC7kAC6z{y1}=d0-$v_=^F3BlYk!3YU z8PDlv3l5s%!ShBhZj4oAJ;}p# zPY6*H#~NYW2&Xp!4VCJTU8u2AUVnP<^~;WU8$oSm1>SF|zYH?Tm1p4hRfgrU*JzyI z2-RYnJ;@ulnM^?raCrslA(jnm^=Lqj&gW1Li05kK0O3l34>*^DG4i1nh`Y78ZQ%Wg zH(E*8KjB{uG&*Lb@2~5^^eZ_ZD@~sp^+=JVP-?M$`C_DZUMEIB2!} z-5*B=>`fR)?TTzgl{AqK@xn>hzM57FpzZ7{rtpt*5fCY3*FDs2&fDhVpV0r>b^FzQ zt@%q@ZCao-u$fnSTeN6E=ueJkcOkQtHj{WZ-Jw5iw_Qk0)+NIL%sG*PiFW{(7Sc24 zlujv~$o!$@pYyuYc3HZnXgkyDldHCCif*-dfLT3iGQvZpkI*Us2+FO>_q!!GGp%kcQ= zKgq!+oVh|==)?95xk6rU!Kw*^<_i4%RmWy*u8k+%_7J( z!01!WW_umgDA~?gvVP_foy9@q&Zt#p16%T<`?@)5E#`msK$^4%ma?8) zt?IDW7g9Ri`5`Fr78pL>R_k z#;7_phNE{JqcHKc5R>u02RXcdyyTpLhTbo>NXJtP*l4zn_J zN&i>mCcWKU`O5oqrxhEKKRSbCJ;yX5bEnea0sLN^*Pa^% zPiNi1OQee6&D!HskiZbQpuxuM!Jr~+v-T7wiD;{Y+Wp6LmRvX(gqwAhFxDw$QhU_)u^lXon|){cG^f{+cj+vQ$#Z~4UhgNi3j*1=al;4yAz zBLXH;Nw1bSF7}S^Ci2(=oK=4_bOZPPPjfCHqEYiH^7_o3;RqOlLT`OH04|pVxC`8| zh=7q*7pUd+kG>=H?A}Ss~|{fkBYtH?0?%Qhgn-s@ZWJ410SS^&!E0n zdzM^MyOFN-UK(N)Z*yHqBqf(nQ%o9*SGURZQ@eR{1?^DIi3}^}^J&sG;Gb-%yYpr7`WAb zme*+V2Tx}?s3MK-G2=RR9FAT>N5I%9J%IFv%%?<4h(@tkFW2%RL3$%Y9?7(Z5B6gI z6$%s}JuuuG}P4YzDNeZXI{ zLzbZTvOEH2H9Lsrq2rM$=}fI2wB8FAi`#wK9?|AftO$AwoX&ch!%lKxy6ngssDA#O zDlAhSh20Lsl^ zo&-`R_c<|HF!2gml5oRu-a2nPpg&jS$~2m>&5Z3cH;6eK3eLj~`H7(QC+#dsqEi`J zSi>*Jkw%gsI44Yx#X6R`J^a8~meQyaMzanH)r^z1mn1fI3lK+xS`x$$9t_NPeNQ{e zaA&)!OS|GhzqI7nZVaC!-fiFccE(?s$_hZ1G+3UMYZc4gy&ZPy0WNQ=g=V{HfAD+g zyLo%cyGeV}{en?!k<&i7z|egN_7_Kqg4u&=xi{&>NLd9|zhm^Qv*|>huj6tMqi095 z9R+icAOvz4IYk6i2rlBcz!_NWTLx55!35BexGD63Lz&<94-Kect_w?viBLHSU;_M* z(L|^%I4lU+%jv)j|ImOP{^9zG++kBnV)qL&xq~4exkCf0mhQs#F}W(5=mb^#!(mu){u|H@RCOfU&b^M z#0B>)lekH=L4gy@5`<_je@o%xf<7ZjinPJT1vO#C1-TNDBig~m1>HMH;BIZSH!Q|?9lD;#=LDNiK4&NZtZV(gAC)tETRz^#G(s;~E5>Ua1oAFn zSq2a~w|}*G<1Onc?y2{TT=wlP0ON2$LpKfTqRRx^g9i#0>I`A!)4lhfd_n5Z_&+{& zaNZl91H$K-{+$Q~xUU`}#C6<`T=)x6k#D63RI&o!TF9SU&eMC^H;#Iid%ht>2cCTt zz<71Of7;;uaw~os(nfdbx-GLE9J_0-cfGscntK-Q&GeYMe>Ht3su%XkhHFk}-O>KA zu`AEfIrF@{t1ybE<*rrnZMZ>2i+|-ZG>J;P0bk*Bx19aejGcN!qQ{ zGB8+Kl=!46`#ao*=RUpjTYrTa+N6!^jBCOE!u`4Ng}H0N#n{x@^TzZ>DN)~q36k2+ z-Um*7~j+mIKqLAb=W4gjRo3g_dvbMb3Al!|DJCu_mOZ!$`9)~n;#P=wb47| zH@+!fc#8^Tooi!wr-#jkWhh?M|Zu*6Vhv_NZlLX?yabkQ`a|J{< zf-$^R`Ws8{PiVb^!_Lr??SU1V-`Jhf(*hJ7gPq6U#UgZZ{%Fhy1b^wur+b|Zd#l?ND8HW!k#1`5EV}kqJm4!muN`5SD1PNC1h4NrOT)c|^>pUU0J?Ke zc(kttVV&ihSSrta7@b9%;UyVweSqDEr%yO33jqcR9BjcY#%Je6~5~arIuh4F6L+j~t$?#e=&xb-Ra{zRZpL zxO^)5+}PcE;n`UZA-hK05XO{&$;;V2$`8KP&TAg_N}$E1$gq1eMt`6q%Gzj3Mdh&& z{#w33nxQlK%y-b^+4FfeN-?!jL5K}5@1+dh6RslYHmuQt`?$3eYE2isDkl6 zp}Zi1mPI&we!aoBl-W>FYaS|b<$Jo}xBdF8uN3>gI7>r7jnjVE*noJeCJSbFd{uOa zzZTM5gGD+BLmTu*>)kS4AVN-dwr8<ckF29y@@&u ze2GTRH44L4L4m6}(-Cg)ILtL^*(R%O^H~Ysq|{dT2Gx#w9cU7Ft{KCEsT?k2g2)jSXl*9!CVQ_@siKqg4=LGD?Xprv zEmCXx2I?H0^J3EPP{e0hwVWehVYOuH+wdxF?MY+ll{!4?E&*%i*7BS^eX0^rD4E3& z9>b{cAOzkIKPSf7l6o73@q)NmEtwCZ%2W=2f+W)22c&Cg4|}ELkkJv##r!!^7z*RX zNB2DeRl*W$_y8%YTyHP!NOtDGZZ8C` zRblY2-Mz;Ji{^@=%ZLw6pOX8;^5wS1(+Kj2J1fWFp>Kt*O2*>LS&Oh`5O-kX$jP1J z;I5@hg#p?YD#{_tLD-?Z7 zXe+6U?Yh3jp{URl!Oq7rG}zFAj{%`f+}?^5J2Fmbsw z33kL>0iT(XJ~Kl+CuMKHm*VKgL8iPNZu@|}nl2?n%r8UF$5lK(zk2Yj!a=Vj3N4c( zj-KM}0dKrm7)Tb5iwjmd5c>mgQ?-Ludve_QY$CQ0h`85<4yx zK5|WXWJ$~(5!@jQi(Ih~h*2YQsS*vjy{7M~s^>F0DfURZqS;!DaScZ_E8a!e3`y}1 zN^agR%w&!-)TTim9@L|{krKCFVyNU_>U@DP1AT8F%1dUY+NyYv#*4N?e7w65kWJJFH1uW|V%=OA4&4UcY8wQ3;eS$5(0LFX;HDHR@x~*fEKqN#g54C%1jWM5!s5;_mDEmIATCC zK3ED<)i*6dCz1ya>YSq@r^|gfo`g})Lb>X|FZecRS*(C6Y~Y713;hQ=qsjZaC073M z9AT0NUk`XwcP%^`1oSJ48qPVW0{^pVRoTzJ~L`{;xM?3JZ@8I$mdtOd07HW)ijMdx~#Q4!4*`OpBW3qxA@bnLL03^9JVJ z7H#jPnUXl;GRv>V z*03I&O!9 zWF`MdZC0yIHe$QuGHdwH_cMm3oHA}4p zdxu-Iu1f|sp7MWE9LVIaASj_Y_2=Bn)nNor0nZ7$y?Eu=shZZMM;9*n@X80me6~Gh zqc!MP*u_){J=do5Mq2*4gq`jvbMa)ozpY+LaQCf!C$Pu3Kgk-7d;tcN>bIxkY`+61 z)9_th+llhJqeJsX5^rn4in=2$&C}Es_jam1?w%e|BHpr`0O5VAx;>J^KWk@#w z!(&!hG(Ljf+Kn4zL#B$ysGXHIkWO}hI{Y)%@270)xPA7#H!!-p6k-d}#z@PJhB+3d zTM?^rLMhXXdbc}Hlb251m>1RAheqgU6>bLKWM>s`!fKOe8LYY*#u2&Pd%`y?cA-$U zG=Z_lj=1a;!7o<>>ulN0d+^bFnIa*7_9>QBbfOfW-;y3fHfSyuzHCDw`h{WerbIkK z70x6=&C+ zGUFP#3Nf5orE4e){=;8{?mt41aA19=P++g1%CE}EY_RV*uNae?6Gy|!+qZ{zY@(?XU`Pp%xEm5GO)pQUN!6f!8@3+ zA&=3YwTv<%xw^)R^{PS6D%C)EI5L4IC1nmlc139n!$Uuk&r#=0|B}g*r(Kp`iEX!S ztebQNm=ccmim0?I_y)O99Z00!f#tuT@vea$N($ zLBlWFoHBBk=UBg_xJ!Oem-bRy;j+2DD;%{=LOjXGS&Sp>PjBh@&_kL;hBppFA~5Iuw7Xz z1ErpY8RM4F!M2%KbMr}*-1P*dCP)|s2j%#k$YXPfJ-;~0CsnrPx^%HwjrJ)R6`jeX zqb!=Q6@$jKep*g{w;J7d#+KuMWKEX0J(u-J|j? ze3sK}+s=LL>qO(`D;LK@D5FON*VNji6JLJ+`K;O(w>6!E2{Vy`3GJOJk49;#9R>u$ zVf$2#RT~Cg9ER$3AjDo(*xQc!$lz@<)JGW_H~vmxXXNIEU9P}#biia7P_!r7u|qI$ z#Pju}4BqTFZ&ty6O3ApwpU4gSg1gu`#`S)oNvUu1mykPwT(E%UjOmo4pmXv}!TW8y zn6fx%`@Dgan95D7<9^Fit=4KT7D=E!D>7Qdh5`MhR>5my7pu&&2Nn^Rp;6(iq8qqqB}1z1mVNuFe10wVuvp9 zj-8h1mrVX6{$r>rIEEZl7_;5DM!6S>r*3aDFIXvGwu*x4%FTH>Vo*@$=W=AIjfxlT z*nJ?Xe%Jgoe#$iW$-YJ2pjAZ>x|C+(`=nMy%HFnLG$x-JR$NajD!*O=59&u#W8<^h z<3#yLrwr#`65zY>`KL{nIVqz+3)7Qvk94kbCT|tog)s?lI7Pp%Iv0+q$V{q?DQG_k~)y?5lvQ50@IAB6%2{9j)N4l$?=WP*xtX>ndB+*FF#BrF=bERx7Psuy#RXQyvPqGWGq&w+P2V~`U=us1TY z9K_%}(qX+1C?%B*Dm4BCy3}y%JgY0JS{D7PYa{rN;@*d9sF5nEC?|8qF-iA2PD9EK zP1ra0)h;5r&QfF(&=;$o#%OIKHOm`SQ8K50MP)HGE7?NvEX0xjS(A}L&i*JexJFH zMA+EV4n`9Onmby@fc$d8g>0ivwD^qic|vYuJ+)vuo5XVz-3x_ft1MQ+GAc5WsNK2; zyGS-n#Cn8fhlIqPtc-zyWH})jvywuDvBPqo`fBw%a@qP&(aCsmQw9$?6_-k4Hu&!x zssYW&9OI9(l9SG3${1yd9WXYXgje+z!SJ1m?N|dn0T1PYw<>EXxr zm|@kL`FvhxVq$bHfRxDm5M|TBjERN3$;B;>jzKywZK;7GlI-v zbkQ_{)%R~=fGj#(e+}1H2c1cO1ag|r&8v?ry zvu~k`^Sj)L`MHz7Gl+3B?YbEL=xTEwZX44n-Z&>e&HELq{#YDX*nHUjTG4ACM$Q;) zG^y6Di<_ocd|KduNgX}@3|sZq#Xgtbi4(|mnk%xb3w-gJ7{h|+J;<&)&%I7i>#}F7 zlo&xwD!hw0sh8)%fVfp__&5=w_`WtxP;%&g^&>B1EuU32og&8Y6~kC!P1?YN>hv|O zPSlw0?>5OJh)U5(4Uqxim+O?l_c%-82AD=^fB){HWofv^J+G( zghJbeQQ-DrDI}Yt7JDH`(^=tz1ZQ%aJ+x{jO0gF@t)~WO7_=oVvx*HiFr*Ygs?OMd zczWEVTSTe|lDBia4&b(3zCG?SkePb%lNlE*#o!qEEhWTKT>HJ@vd>&Ht%;CXS?~9y6>V;=S*}z3ldd_sezFOf zdaNNuClDp&oEx_N&XomoA7SG}=2)$BcZJ7_pbTe^cuGHL#%OW)1=6s7fozH}p45cP z90<@SR|qhmMT6d^-80+s=ifvjNM5WRdpAd2hndOr(~62?5W^mB@WS7iz`W~=GF5$VNdk*F=(@2mRti=!~657yVmzIWWjOZ-G8g)vuD3fb>r{RD z4#JD=(PhyM!3JNc+kehL=xX{?If~6R=TF?b-p~jJ% zV(-a)PwVUQ{qku@hScQq(f9B6qvZ>sf;?Wel*9R&g*0CrgNxpY$yQRj4RdPdbgd^i zCv>m|O8aAkHcP4Z)}fp%caaSv08%|C>~)$5S=U~M@e(0c?{q0R$WEc1F*Z*O`7%ls zHm$PLoA4lP25TW)(UcbaSR~dF7QX*PNjB4X!c&a1Wga(~fW#H85KRcTlzs`EX$!jl zGVY)0ctZiieD$PmJNtdsb`JJkqt3^2KAYTe=Qce>51D-`NIVmg<;Ct>4GbOLx9A7& ze|UG#3e!`%HHZmG;J4YT>M7h$h00kTwO%$Atm=tthkh}r0U?xGmrZ58UyDHEMo#SD zhH3W+V`p)F$Q<=opt@v!tl*O{&jvty5r{~;Mm~z7=+>FFNkn&B57$}roucu(f7qw6 zH)V`B80LEM=XYsTi%r}eoWK;$Atu2ut)G!93lkEJ#4N+1_dRPLtV9n;S0jA~2F%%{ z@}n772tIO_ouI`spdO>ij(=!@9N!?OfTmuKBI-1W+%$(XjikKWKmYT zj&~(~|7A<&s9L7@-Uz7HsG=D-0fm#Kmq~JHh$!n=iOUInqg?f!kYf-t({5t!_^z(= zZL)E1i#x59Z<65E-;`~xIy1Kz)4MC+4Tr*CLj$4D$=1=bPg$eG<4Q63s}!O2I-0;OoRcAtpnXEcn>h648ysgVxniZ4O0iKVT*F=c9Z709jv_`> zHiz%T+y-^1li#h#yZuIWl#3W)`0Tly3V+3NSs$Hem3LD%tJ;V9=dV)V>C1j#MO!~j!5i>_S#qxEkVI-hDcOc zxgeb-e^N%o0!cnR-!}SqA>{5))13REtlmmqRA zyTv`SG@fGyaRhH9qwh3^fWMR zBl?IPNl}zJfp?>8A@=ss?bP_hgUsvBEJMp4#zlXT=sNZ0}6!j zNr4kTXf{J{yj& zu^@8gsqH2M1Z>EhRzpsBN0|39HEC5T9>al!M_fs1gfW?!?GI10C*-usaNdjK=cG~K ze%mG%>lE0(Uv;T`+!%i*2qAftszmWh)DGzwr2o=~;w5cR6zazWjS9DKH6=WbUZ*f6 zC4>iFELT&git}@ZQ&SYwdykXz%^RUT(XUZ4CjU=5`qV;qpq%14y>O>&w+nUFnPEV5 z=pRbBeL6T1KkpZ<078*&VaA-QY$C;;!cZW=&l`aA4iNm$w9BX%F-bSiAM86L~Dnh^ad}_(QMFcafR)jpa?ie__b1hmg{au|B>^@ z8;&sN4=Nm?vgU34{Hb|7y9indbow8=zB|;mFh4mshFpCDXmzEk3_tJRk+6F8EQ=^H zcyvHC5#nS|CYkym`>RY@t)C0gg%`mpFNBg1^LNr%?6N}LiNUyeA(+J(0&*z_@vdFS zq@1xzuIz!*M_EQnMPZ@PMtZ+M2oQOxw3vH=q2$O$UGvpF@ z{FEqxM`p8_FOF@QynSmrKT4+bc>i9~#7bic*K!7*(;})%6UHpJ1RefmTx}Thu{`Hy zIsc@PTvIMCQa_kTPhtkH$4AF^p9yjT51(~+y89!S(P~@YG>w8sYJBq6s^=e(C;I1X z!#+WXRuhZX^wvQ3V_l^0PZX;gJ~F+4B*^}gNBB>c@}S|SNM|4XFFw%5MpJQ>S|RFy z#k1`h4dz!#T*9a_@X9iKi*&&eS`_-OkGkEY`muj#U>LV72@m|mBk3oh+c_qt;7!*- z{b}Y{>88+eIe@ATl5o9_nR0C5;4v4x=DWjn#d1UNz;FMm*eF{!x0YyJ@SEqIJeWmhqH56oO zLA{1JLa0>kHTsDQA9-Ys^1TU~1m}&r;m)bb#qW3S5$MRYm_3h9yxZFGr^!fCi+7G0 z4R!5zmn-h&23*n{MENg=WS>Ib1Loa*dg?yj@#L<<0kI5-v-Ap10x|qAc6|tf3^GTZ zO(ewg*9cU~*HQwCw7SI%MQh)|evaI!L&|H;)=Hy!rzny>;g1OV{%5ktm!neNH#=zcZ)KW!GCXJiMe|t`EI5SN*=hhu|ei zp0r3DmKrK&qP##7=@gW(Zur zJA6dEF-g4lM6NXd7*YT)|Kl@o>m}R=N$UO@PDP)f5l-|H0F~Jsy>aVfp6DnYM>FPB z+H$_MH<8I>1|MS@EDRZbx7O}@IBN@mMbT5+r2hxI*DieXxqPFa7{JVFZgo1yF2t1g z^1SFMWLSA~UFjF3SZlw27*ubThz0+X0j<9MQn)4FC0mNE5JnuFS z2;I(Ra`igCpE6>eJ^2OOT?|KqGCT!YzHS+oeSXVFX2@s_p@9+TY{~=@dI$D^F znQ_^${E5i(VKFpcTs{*x#rd|!`*gjz6zw5FeLsrKe=>d!^j+kO^Ka3w#1m<9ze0Dy z=nrfb$7Au^4U}#VPYTbc&xM*L^E>>Wm2pbjJch;0bd{K29(CQ!?&l#AZ=VzZW`e7) zyKp+vy5=7As-ckX=dOA7i{tG9-;LMV8(a~%E-~@g9UEk;=U!9k^r$ELqLF?UdvO~Z3 z*{|x(&raV3S~;KKwYZ=vX>@6AO3)5zObYw%C%&8&SOttcT-1%=)E~7S9z8NT|5&-0 zQbyjkUF}$+d9iu#vVfqc89sihCD)^eH@0&-wU=}WP-2K|A$tyYuD{UKsc`nbkpU14 zi@1(f>^~11*Mj8$o{Ki<(cy180^XPD#4qMU^oBYzq%vX5f+B`r5TJ;Jn+TX*_=p|_ z-Y9Q0LQOn#dxUcyIaT%Xeq7O$(j)9oKV%@RGNfXP?&=K`D;@3zfAmiKraiTa^58;Q zCm_KM3^3c*KI`D0E!oMag3G2~?9GBGveU}iSp-iyI^w@q0=NLUQE{XQT<|~OQV~9{ zDZ(HY^2I4U6LRUob0L==yby9xo3Oo*ivxFsTs*ih3^@gx_$@L>W)qhPB}R!+Qj`oO zL&@Peynq*Q-H$``^L>W;6E$kPC@#t*mA$r);`g5mY0(^|L-t(%JL-sSFk!It1TKzI zVw7cEoS|eWYbZHNj&hC43wD80pxmUgV(S4MYXHX@NYtNfXW%{+(nk*yE+!^v;tSiO ziMyM9bRT_=`rqsTGe=7^VS0T!JgzgCOj%jDnG)`+)iU6gC&rFsv3liaGSA>4Y1-q`hL&bLdu z4%F2M(nz8X*B$sI`BQZdK1Y5!x$)+)f#v$zXrkUv_ILgq(uZY?uX2U_MtN{w$R&Uq zA(sdq3%R85Ovt4R&xKri@Ipu>v{Z$+*Fs+8z+E915AF-O7`Umh$M6`Q!83Rlo(p+p z4_*klgsO_|g`6C?E9BzC{VKbG8+Zhdg*=F)pUcd_*-vqjb?Q1;Yz+E915AF-O1aKqd62W63mlU1}xpd*VkV`>M-vk9V)^!}B z&JzyY6>{<5zK}}*H$pBEJQi|E;hB(27oH2LgjRt;fsOSz4l&M49k?sx;=z3(mjG^r zTq1ZZ?7P`*R_E_vIM$Fi{A3TJ69ggj^iBE9BzAeIb_sZiHMScr4_S z!ZRX${<9sNx=6W@OAlTMxu~5ukdTW5cZFO$xG&`L=+5tyvJHya$t8xz?4gxnkO_IZ z3(tjIdhkNXMeV{-gj^iBE9BzAeIXYEH@nzl_~96X41)}w!}AT_&D-R=`GNvoz`Y6X zzK~{&~fd&1tRnHTO04HTEfqAS;_OWO%J8rrA8dZQ@AIol|6;yGzi^(X=LhsF=Yug# zw((#arRM}a$LXihc%`#2rne7o9sY9bU%ziYmOT5r@vn})@Q2R%F@3Tr_1k-u?_U1( zHq+SyXo4{w<--I(Mpi zhkpG^&C)k?`Bk;QbIaCyez`|ARYSFjMop_(`XRMI|E9j@7_3j{GxV{{I@P%jWfBVLl3 zNgw2*iFME=5$PQ9!9HoSMl?3M6Oceuhz|yRawkRu`hZFzAz<+QfBm}&AK&@TnR5=C z&4!H{tx==(%>%6up8f9EiPvrU+{Dzj`PKDOY!c?>NwK|U!d);okYcVGue?Kwt%+M$ znT*P1a(@yVZcnDZT_i1Su1 z_t6gWu=v`N1#($19$GC0+RjCCDOo<;hby>($M6`g;ToR7Gk6obeDJ0cKB|?c&Vw4m`qiB>2p22f?4wvn? zL_6)%*`A2sEf>W_={Kdt_EG%y!=YI;Vp5Mi(*CYkVJl21EFHtcF-nYb5D#kq&rIB!=cD`RBc^|9 z2Pk94f3PF?LF0efDSXQK>`DWE&bU*#YWYQuB?lP%(aGyyegadb(R6MxP zq!PdtlS%}SnN(7^W>RUuGo~q_m1B_OV7UmFSVT)5xXYyC!F?u`0Irx+B6!TCqTw2Q zX7CK&goio)%8`VF3DK#<3nN-ALT!Kl(fxAp99^7YA3E+xJC4$FH zDjKdAlV^+fh3302!=Q{R*HdU(sTo!F{w1+Ig^T5 zf~zp8IB=Iq#e@4yDhjTakjL=h7z2%ghG+0>#+TAD*;0BShv#r_8Fim&W|L);z4GPc zfysXPW%9!0-on2<$)(BV(oee6buvnZQ(u0O98CKQHx?$Jr0IsCqO+Fv@W23!z;x{i z@oKRN7wc$^1A1Vv?u7U}nb7MB{}hw6dU?2^6b;@mi_*cX;!r7tH;rE`HQDLEHDc(h zsFcMJtrSC498-3b9TW$}Gv!3tL-9}oQ!bSQlwhXZ^^18n0vp8op7%@Jx{h~@4t?|O z_xDb(I(GM;KcBDHk6z!?(>Ys;wl%8jqm#gZ3f%YbOFU9shg+U|->=+Uj612ez5o?m~myDG29iGhy)0E)kF;Q#;t diff --git a/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb b/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb index a228cddc7f1bf92e1c90c1d323caef58cf559f31..795719b34d34728493fe10a24c1e1d03fe24721d 100644 GIT binary patch delta 101 zcmV-r0Gj`t`U0H#0+4(Z4-m@_%JMQrlX7$)%~yDKzAnVOv5;#_Accp^m6WRSB8rKpa1~9I!UDltkp%11@YOrVbBb- H?Vm3l5_K(M delta 101 zcmV-r0Gj`t`U0H#0+4(Zc!Z(?v5;#_Afa|poGLu%a#V-9 z7*4*GWGtTkO4?43vr*ghU`=*IinAL{x>6Wg{?)etpa1|5Ys(d@i+V+q zLXIL_ngOI(7>Lz@_$E;9CXyV(WJ5)9fz*!t%!yrFJm!5pDEoZTsw0yl6cdb~f))3m zfMnE~k(AkPBG1BTG#yJ{CWfsO(tiV%a%f*S7` ICmOH=0C+-(U;qFB delta 438 zcmZn&X$YCn!SZ~+{lkepGK^XiSBCT5uxDWKX8?i(1_l}CiHgEJ4GauCK>i0i28NKy zicC6_BN^2h4JJ1NNtwwj8N(TQCNnY#vnq%)FfdL|R5ITj!1REfF=w+OS2H_f;^eJ@ z!O@A#2@J^$yO|Q9WHv)0a|4*&2qi%xjEo>PjEo>QGb1;Utq2xT1dBL=*^Xd#BAA^B zVsB0s666-J$+|JMc-0Q~c8~e3F;Q~=H@C=!G3#?NGO!xy8R!`>FmNyey?_8Om8L9Y zVDt@O0t)2@8j}I3O&Mn#`*t&B(J^Q|T$=;Mio BbEE(O diff --git a/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb b/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb index 124723a7217a3dcfb586a044de72615f617cf859..43849d9896b19a0cd5bfe3b2c080eb3d7a5f161c 100644 GIT binary patch delta 71 zcmV-N0J#73sR8t<0g!wYWr%NSk&3iPp7p^U=c1~_Tf;m4v5;a2AiLGg@Hk@Ab`x2h dJjYbF;_IXl^gxzr3`BIYiMd&`@3RsK;!9J&C2Rly delta 71 zcmV-N0J#73sR8t<0g!wYENz|p1nXr>fhKFTjNZ21=^~V&v5;a2AZ95cMdr3os)#a4 d$i3Cn+Ij03WtJj&I?#bcRd*t^ma`HG;!F8zBBcNT diff --git a/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec b/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec index 608ecf1..aa31f45 100644 --- a/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec +++ b/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec @@ -5,7 +5,7 @@ 2.0.0 Win.Sfs.Shared Package Description - + diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs index d2f7190..6b397cc 100644 --- a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs +++ b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Win.Sfs.Shared")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+2092a38cbb13c5193009595ba12aecd716ddc879")] [assembly: System.Reflection.AssemblyProductAttribute("Win.Sfs.Shared")] [assembly: System.Reflection.AssemblyTitleAttribute("Win.Sfs.Shared")] [assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")] diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache index 7968e60..24d5546 100644 --- a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache +++ b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.AssemblyInfoInputs.cache @@ -1 +1 @@ -4a725e723e769ac9de8f0aec43d8f7a66bce66d75844e12c14898e748a093244 +6d2fe8ec5bc907c024a5ddabfd324b4824f304459352f78a7d89e3d9cfbe6252 diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.csproj.AssemblyReference.cache b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.csproj.AssemblyReference.cache index 43e464c20cf00d39f9ccb88a912d5667d2a774eb..01b7affac579bdfb7322eb0e4f87e0b7f09423b3 100644 GIT binary patch delta 19 bcmZ4Yk#XHe#tDgRom294?GA5Dcdq~dT&@Vo delta 19 bcmZ4Yk#XHe#tDgRhv#+4cpuo9?p^@^U+f7X diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.dll b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.dll index 148535f71ae1191298588647f81e5bacc8bca966..6ba51064d9c3ae27c642d75c5456692f78402fb0 100644 GIT binary patch delta 3628 zcmXw+U1%KF8HUfq0=NLUQE{XQT<|~OQV~9{ zDZ(HY^2I4U6LRUob0L==yby9xo3Oo*ivxFsTs*ih3^@gx_$@L>W)qhPB}R!+Qj`oO zL&@Peynq*Q-H$``^L>W;6E$kPC@#t*mA$r);`g5mY0(^|L-t(%JL-sSFk!It1TKzI zVw7cEoS|eWYbZHNj&hC43wD80pxmUgV(S4MYXHX@NYtNfXW%{+(nk*yE+!^v;tSiO ziMyM9bRT_=`rqsTGe=7^VS0T!JgzgCOj%jDnG)`+)iU6gC&rFsv3liaGSA>4Y1-q`hL&bLdu z4%F2M(nz8X*B$sI`BQZdK1Y5!x$)+)f#v$zXrkUv_ILgq(uZY?uX2U_MtN{w$R&Uq zA(sdq3%R85Ovt4R&xKri@Ipu>v{Z$+*Fs+8z+E915AF-O7`Umh$M6`Q!83Rlo(p+p z4_*klgsO_|g`6C?E9BzC{VKbG8+Zhdg*=F)pUcd_*-vqjb?Q1;Yz+E915AF-O1aKqd62W63mlU1}xpd*VkV`>M-vk9V)^!}B z&JzyY6>{<5zK}}*H$pBEJQi|E;hB(27oH2LgjRt;fsOSz4l&M49k?sx;=z3(mjG^r zTq1ZZ?7P`*R_E_vIM$Fi{A3TJ69ggj^iBE9BzAeIb_sZiHMScr4_S z!ZRX${<9sNx=6W@OAlTMxu~5ukdTW5cZFO$xG&`L=+5tyvJHya$t8xz?4gxnkO_IZ z3(tjIdhkNXMeV{-gj^iBE9BzAeIXYEH@nzl_~96X41)}w!}AT_&D-R=`GNvoz`Y6X zzK~{&~fd&1tRnHTO04HTEfqAS;_OWO%J8rrA8dZQ@AIol|6;yGzi^(X=LhsF=Yug# zw((#arRM}a$LXihc%`#2rne7o9sY9bU%ziYmOT5r@vn})@Q2R%F@3Tr_1k-u?_U1( zHq+SyXo4{w<--I(Mpi zhkpG^&C)k?`Bk;QbIaCyez`|ARYSFjMop_(`XRMI|E9j@7_3j{GxV{{I@P%jWfBVLl3 zNgw2*iFME=5$PQ9!9HoSMl?3M6Oceuhz|yRawkRu`hZFzAz<+QfBm}&AK&@TnR5=C z&4!H{tx==(%>%6up8f9EiPvrU+{Dzj`PKDOY!c?>NwK|U!d);okYcVGue?Kwt%+M$ znT*P1a(@yVZcnDZT_i1Su1 z_t6gWu=v`N1#($19$GC0+RjCCDOo<;hby>($M6`g;ToR7Gk6obeDJ0cKB|?c&Vw4m`qiB>2p22f?4wvn? zL_6)%*`A2sEf>W_={Kdt_EG%y!=YI;Vp5Mi(*CYkVJl21EFHtcF-nYb5D#kq&rIB!=cD`RBc^|9 z2Pk94f3PF?LF0efDSXQK>`DWE&bU*#YWYQuB?lP%(aGyyegadb(R6MxP zq!PdtlS%}SnN(7^W>RUuGo~q_m1B_OV7UmFSVT)5xXYyC!F?u`0Irx+B6!TCqTw2Q zX7CK&goio)%8`VF3DK#<3nN-ALT!Kl(fxAp99^7YA3E+xJC4$FH zDjKdAlV^+fh3302!=Q{R*HdU(sTo!F{w1+Ig^T5 zf~zp8IB=Iq#e@4yDhjTakjL=h7z2%ghG+0>#+TAD*;0BShv#r_8Fim&W|L);z4GPc zfysXPW%9!0-on2<$)(BV(oee6buvnZQ(u0O98CKQHx?$Jr0IsCqO+Fv@W23!z;x{i z@oKRN7wc$^1A1Vv?u7U}nb7MB{}hw6dU?2^6b;@mi_*cX;!r7tH;rE`HQDLEHDc(h zsFcMJtrSC498-3b9TW$}Gv!3tL-9}oQ!bSQlwhXZ^^18n0vp8op7%@Jx{h~@4t?|O z_xDb(I(GM;KcBDHk6z!?(>Ys;wl%8jqm#gZ3f%YbOFU9shg+U|->=+Uj612ez5o?m~myDG29iGhy)0E)kF;Q#;t diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.pdb b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/Win.Sfs.Shared.pdb index a228cddc7f1bf92e1c90c1d323caef58cf559f31..795719b34d34728493fe10a24c1e1d03fe24721d 100644 GIT binary patch delta 101 zcmV-r0Gj`t`U0H#0+4(Z4-m@_%JMQrlX7$)%~yDKzAnVOv5;#_Accp^m6WRSB8rKpa1~9I!UDltkp%11@YOrVbBb- H?Vm3l5_K(M delta 101 zcmV-r0Gj`t`U0H#0+4(Zc!Z(?v5;#_Afa|poGLu%a#V-9 z7*4*GWGtTkO4?43vr*ghU`=*IinAL{x>6Wg{?)etpa1|5Ys(d@i+V+qFO_^_5 zolVNkH_m&O>i17ST6g5klN%3Bx#T;uK{scPid8SJ12Ftvn8zI{7BOcW8yhyv2|5hH zC*d;IMPUN#vhWP6TjbxG*M_S^U~cGPj157Z=q3BmjiN?wLdQiN>q#+5NgwNj9=?0; zx!w`c@8EDp)EpOahZy>?7<1f&S7L&aG$teBAk7$*axWXiW>hk0A&0&v<;k9-7IIwgXqJuLC&Gm@}@jBv)Ejc3*;htOa>P{#)bcl`EH+R z+j3t9nIf6PGucb_quI&%luHApMB-MZ7QqbGi^=m6#t3IUG6(D(eT+_P^?WLU{xR`GCr9bG6;C7t6frZ`?ss7opyxkrU`XPvW1gHz$M1tS3WBMzsId$)TPo@*c8%b77JWIu&BtyU?m?CBaj{{qMWco zu?Lq6CI!ow^sop;4F;9a3cYLzCP76IEJhCtm5@P2ik&&+Q}giWcmH$e&M@3-&P(RJ zG&Y=He!4P~xLJZ-iPUk${T`qL=*j|g<|P7~y$FRg{PGT(R~_Lw7B?w&nw=qM)EwoK3NB{_k4wNG)z1!+ zw`m4DMh^BEhY1eff zbgpy(6S|)rBv0!GJ4T)puI2&dgKiZ$GgCzZR&@JD^997iVm%^eo}Kq1llGWXT8~wvk25U>E|>!<26&T?zPxy&MYU?^32*P z+DYqeVZ129?ZKXOp+EeGRxrXV;PV;mIJwIg|7U0CnABK4lN&SaG!`|VeHJ$sH)(3h zl{7bLZnD($+t1te$p3pfJNn(DZbB%itqN6z0GbdYVsX6KE*oESiL#{T3(?8hxLQOs zxg8tqlgWoDLUd>pE26AQ8@B;gCDCOiv0MDMO0nMFF}Z+wA&|xL-QD8sl%QvhdR_yc MyzY8FP>GQ1FCkD5QUCw| diff --git a/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/refint/Win.Sfs.Shared.dll b/Shared/Win.Sfs.Shared/obj/Debug/netcoreapp5/refint/Win.Sfs.Shared.dll index 640ac108710b6b0d6abe84f9d4fe3d48ec853716..3fab9b928c913024e0236a9b11ffce8445680e4e 100644 GIT binary patch delta 1061 zcmZY8Ur1AN6bJD0+iY{q-9H*pp|sK8rRd$(bz7lav%+cOAS#NeT{p?qlP?t&xDrHB zq4CoqBDp3M0}JaSR4*;+MTq`T4?fwTdRS0_5*ZP8?jfJLgL6OU`#byHG43z((w2E? zyE;(f-?QsycDR!DXLCn{opS&kfL8%v%AWPDaWg2xb{*!G+-IxdM_C6O<~g>FO_^_5 zolVNkH_m&O>i17ST6g5klN%3Bx#T;uK{scPid8SJ12Ftvn8zI{7BOcW8yhyv2|5hH zC*d;IMPUN#vhWP6TjbxG*M_S^U~cGPj157Z=q3BmjiN?wLdQiN>q#+5NgwNj9=?0; zx!w`c@8EDp)EpOahZy>?7<1f&S7L&aG$teBAk7$*axWXiW>hk0A&0&v<;k9-7IIwgXqJuLC&Gm@}@jBv)Ejc3*;htOa>P{#)bcl`EH+R z+j3t9nIf6PGucb_quI&%luHApMB-MZ7QqbGi^=m6#t3IUG6(D(eT+_P^?WLU{xR`GCr9bG6;C7t6frZ`?ss7opyxkrU`XPvW1gHz$M1tS3WBMzsId$)TPo@*c8%b77JWIu&BtyU?m?CBaj{{qMWco zu?Lq6CI!ow^sop;4F;9a3cYLzCP76IEJhCtm5@P2ik&&+Q}giWcmH$e&M@3-&P(RJ zG&Y=He!4P~xLJZ-iPUk${T`qL=*j|g<|P7~y$FRg{PGT(R~_Lw7B?w&nw=qM)EwoK3NB{_k4wNG)z1!+ zw`m4DMh^BEhY1eff zbgpy(6S|)rBv0!GJ4T)puI2&dgKiZ$GgCzZR&@JD^997iVm%^eo}Kq1llGWXT8~wvk25U>E|>!<26&T?zPxy&MYU?^32*P z+DYqeVZ129?ZKXOp+EeGRxrXV;PV;mIJwIg|7U0CnABK4lN&SaG!`|VeHJ$sH)(3h zl{7bLZnD($+t1te$p3pfJNn(DZbB%itqN6z0GbdYVsX6KE*oESiL#{T3(?8hxLQOs zxg8tqlgWoDLUd>pE26AQ8@B;gCDCOiv0MDMO0nMFF}Z+wA&|xL-QD8sl%QvhdR_yc MyzY8FP>GQ1FCkD5QUCw| diff --git a/Shared/Win.Utils/bin/Debug/Win.Utils.2.0.0.nupkg b/Shared/Win.Utils/bin/Debug/Win.Utils.2.0.0.nupkg index aec071c706daf3efa28a8f781b71084eb7d9e619..f0a7bed01874b8dd875e71da30ad9e60a313b0f7 100644 GIT binary patch delta 5668 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 awF7(TY2xAkvzl0V|03j{<}{}L5B(pk{o+0V delta 5587 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 YnW>|SJjU~X$}#>P=-+-bWdCIU1J^XIqyPW_ diff --git a/Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.dll b/Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.dll index 737aaf3dcd1a54288c34aa86bc89204509d56e9c..44c855bf269a066b808c52f20b938c5f3ebdfc44 100644 GIT binary patch delta 588 zcmZn&X$YCn!J=tnK4)T&3}ev5mEn904h#(b3_y^;z)-+EQBjzufq{Vs$d|BZU zLXIL_ngOI(7>Lz@_$E;9CXyV(WJ5)9fz*!t%!yrFJm!5pDEoZTsw0yl6cdb~f))3m zfMnE~k(AkPBG1BTG#yJ{CWfsO(tiV%a%f*S7` ICmOH=0C+-(U;qFB delta 438 zcmZn&X$YCn!SZ~+{lkepGK^XiSBCT5uxDWKX8?i(1_l}CiHgEJ4GauCK>i0i28NKy zicC6_BN^2h4JJ1NNtwwj8N(TQCNnY#vnq%)FfdL|R5ITj!1REfF=w+OS2H_f;^eJ@ z!O@A#2@J^$yO|Q9WHv)0a|4*&2qi%xjEo>PjEo>QGb1;Utq2xT1dBL=*^Xd#BAA^B zVsB0s666-J$+|JMc-0Q~c8~e3F;Q~=H@C=!G3#?NGO!xy8R!`>FmNyey?_8Om8L9Y zVDt@O0t)2@8j}I3O&Mn#`*t&B(J^Q|T$=;Mio BbEE(O diff --git a/Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.pdb b/Shared/Win.Utils/bin/Debug/netcoreapp5/Win.Utils.pdb index 124723a7217a3dcfb586a044de72615f617cf859..43849d9896b19a0cd5bfe3b2c080eb3d7a5f161c 100644 GIT binary patch delta 71 zcmV-N0J#73sR8t<0g!wYWr%NSk&3iPp7p^U=c1~_Tf;m4v5;a2AiLGg@Hk@Ab`x2h dJjYbF;_IXl^gxzr3`BIYiMd&`@3RsK;!9J&C2Rly delta 71 zcmV-N0J#73sR8t<0g!wYENz|p1nXr>fhKFTjNZ21=^~V&v5;a2AZ95cMdr3os)#a4 d$i3Cn+Ij03WtJj&I?#bcRd*t^ma`HG;!F8zBBcNT diff --git a/Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec b/Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec index 9908b45..192bab7 100644 --- a/Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec +++ b/Shared/Win.Utils/obj/Debug/Win.Utils.2.0.0.nuspec @@ -5,7 +5,7 @@ 2.0.0 Win.Utils Package Description - + diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs index 64b710c..81c0552 100644 --- a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs +++ b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Win.Utils")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("2.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("2.0.0+2092a38cbb13c5193009595ba12aecd716ddc879")] [assembly: System.Reflection.AssemblyProductAttribute("Win.Utils")] [assembly: System.Reflection.AssemblyTitleAttribute("Win.Utils")] [assembly: System.Reflection.AssemblyVersionAttribute("2.0.0.0")] diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache index 8fe9033..29a6435 100644 --- a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache +++ b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.AssemblyInfoInputs.cache @@ -1 +1 @@ -75c76c4b1eea5bc44938ab8179e7b6a6088da564d5fc0732469ed7fb00485f30 +a97332eadfccd04ca5a3d2e104ed3aa27eb952b00af14d48bb16c021e7e8e0e6 diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.csproj.AssemblyReference.cache b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.csproj.AssemblyReference.cache index 63b26a01c8b985b738e3a9f57a901aa3b68070cd..834adf92a7b12935a0841a31925237b7056505fa 100644 GIT binary patch delta 153 zcmexl@WOC|98*0bBLf2iBO@bsUTR5kNn&0~Vo?es6Hp8rV62CVf;0iOaR7-k)x!VJ z>fQ|m3m^!tG7~)mJ!1o7LrX?R9z8$TkYIGv{{sOBh+t%3^q8!`;;=cNiCGK)z11FB delta 22 ecmaE1_{m^{9Mj}h76C?&$@AG9Ha}%z76SldwFj&K diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.dll b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.dll index 737aaf3dcd1a54288c34aa86bc89204509d56e9c..44c855bf269a066b808c52f20b938c5f3ebdfc44 100644 GIT binary patch delta 588 zcmZn&X$YCn!J=tnK4)T&3}ev5mEn904h#(b3_y^;z)-+EQBjzufq{Vs$d|BZU zLXIL_ngOI(7>Lz@_$E;9CXyV(WJ5)9fz*!t%!yrFJm!5pDEoZTsw0yl6cdb~f))3m zfMnE~k(AkPBG1BTG#yJ{CWfsO(tiV%a%f*S7` ICmOH=0C+-(U;qFB delta 438 zcmZn&X$YCn!SZ~+{lkepGK^XiSBCT5uxDWKX8?i(1_l}CiHgEJ4GauCK>i0i28NKy zicC6_BN^2h4JJ1NNtwwj8N(TQCNnY#vnq%)FfdL|R5ITj!1REfF=w+OS2H_f;^eJ@ z!O@A#2@J^$yO|Q9WHv)0a|4*&2qi%xjEo>PjEo>QGb1;Utq2xT1dBL=*^Xd#BAA^B zVsB0s666-J$+|JMc-0Q~c8~e3F;Q~=H@C=!G3#?NGO!xy8R!`>FmNyey?_8Om8L9Y zVDt@O0t)2@8j}I3O&Mn#`*t&B(J^Q|T$=;Mio BbEE(O diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.pdb b/Shared/Win.Utils/obj/Debug/netcoreapp5/Win.Utils.pdb index 124723a7217a3dcfb586a044de72615f617cf859..43849d9896b19a0cd5bfe3b2c080eb3d7a5f161c 100644 GIT binary patch delta 71 zcmV-N0J#73sR8t<0g!wYWr%NSk&3iPp7p^U=c1~_Tf;m4v5;a2AiLGg@Hk@Ab`x2h dJjYbF;_IXl^gxzr3`BIYiMd&`@3RsK;!9J&C2Rly delta 71 zcmV-N0J#73sR8t<0g!wYENz|p1nXr>fhKFTjNZ21=^~V&v5;a2AZ95cMdr3os)#a4 d$i3Cn+Ij03WtJj&I?#bcRd*t^ma`HG;!F8zBBcNT diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/ref/Win.Utils.dll b/Shared/Win.Utils/obj/Debug/netcoreapp5/ref/Win.Utils.dll index c4d6571bed2768759e0836e84f99e7d8198e2687..10192c5fc7e07f0817415f230ec81c46a3a17578 100644 GIT binary patch delta 401 zcmZp$Xt0>j!Qvg>);+ODhH>4*mEn9b{tOI2#K4fiz)-+EQBjzufq{Vs$aesW%1l;d z(wQ8|=+C%i@=8W^#)8ck8TFY2_F8!^Wm|LAwU71V&7FxCcs2{Nyk}%$m@t`ks!R1F~OLTLC;9fK+izi$iUJl(byt6Dap_{+0@X| z*ucQj)Y3F5(aG61VE1+q;`*qfK4=D2LQ=2ShN5D delta 260 zcmZp$Xt0>j!4mcF>h_5}GK@_VSBCQ$_%kp75d%X41A`3nL`7kq1_lNmAYTM1Dl=J; zNoR5-qd#NE-ZL^Wq)cXH6J|ZY z$H2e{)Mq|9fGve_%jT_Yvw1LeBnYo$RIZA9Eqr&8$V#-W^7&ps_Phw;?U|^fPSwefV Wk>q)xrVvgCh-X^t!ET&rzzzV+oI@7? diff --git a/Shared/Win.Utils/obj/Debug/netcoreapp5/refint/Win.Utils.dll b/Shared/Win.Utils/obj/Debug/netcoreapp5/refint/Win.Utils.dll index c4d6571bed2768759e0836e84f99e7d8198e2687..10192c5fc7e07f0817415f230ec81c46a3a17578 100644 GIT binary patch delta 401 zcmZp$Xt0>j!Qvg>);+ODhH>4*mEn9b{tOI2#K4fiz)-+EQBjzufq{Vs$aesW%1l;d z(wQ8|=+C%i@=8W^#)8ck8TFY2_F8!^Wm|LAwU71V&7FxCcs2{Nyk}%$m@t`ks!R1F~OLTLC;9fK+izi$iUJl(byt6Dap_{+0@X| z*ucQj)Y3F5(aG61VE1+q;`*qfK4=D2LQ=2ShN5D delta 260 zcmZp$Xt0>j!4mcF>h_5}GK@_VSBCQ$_%kp75d%X41A`3nL`7kq1_lNmAYTM1Dl=J; zNoR5-qd#NE-ZL^Wq)cXH6J|ZY z$H2e{)Mq|9fGve_%jT_Yvw1LeBnYo$RIZA9Eqr&8$V#-W^7&ps_Phw;?U|^fPSwefV Wk>q)xrVvgCh-X^t!ET&rzzzV+oI@7?